$scope.escapeQuotes= function(str) {
return str
.replace(/('|\")/g, "\\$1")
.replace(/("|\")/g, "\\$1")
}
但它似乎没有不工作。看起来像一个简单的问题,但我很难找到解决方案。任何指针都是受欢迎的。
$scope.escapeQuotes= function(str) {
return str
.replace(/('|\")/g, "\\$1")
.replace(/("|\")/g, "\\$1")
}
但它似乎没有不工作。看起来像一个简单的问题,但我很难找到解决方案。任何指针都是受欢迎的。
我会说使用ng-mouseover
相反,你不必担心逃避的东西
ng-mouseover="mouseover(landmark.name)"
代码
$scope.mouseover = function(name){
console.log("Value output:", name)
}
潘卡的回答是好,但如果你确实需要使用on-mousever
,可以用HTML实体替换单引号和双引号,这样可以防止它们打破mousever
函数调用的外引号:
on-mouseover="mouseover(\"{{ landmark.name.replace(/'/g, "'").replace(/"/g, """) }}\")"
然后landmark.name
可以安全地包含单个或引号,它不会导致任何问题。
所以,如果landmark.name
等于`公爵的车”,你的HTML将renderlike这个(角编译之后):
on-mousever="mouseover(\"Duke's Car\")"
每当这是由浏览器渲染时,'
HTML实体将成为一个单引号:'
那么如果'''里面有'name',是正确的? –
你是对的。答案让它搜索/替换单引号和双引号,并用它们的HTML实体替换它们:'和" –
Cool .. +1 for unescaping –
好的答案,但我正在从ng-maps和ng-mouseover绘制一个圆圈,因此我不得不使用on-mouseover。其次,使用{{landmark.name} }然后像Landmark.name那样直接输入它,那么添加{{}}会解决什么问题,因为移除{{}}似乎是解决我的问题。 –
'{{expression}}'表示您正在评估与括号中指定的范围有关的表达式。 –
我没有真正看到你提到你倾向于在地图中使用它.. –