[英]AngularJS and HTML: Escaping quotes inside a variable for an onclick function
[英]AngularJS escaping quotes
我很難將以下語句中的引號轉義
on-mouseover="mouseover('{{landmark.name}}')"
其中, landmark.name="Duke's Car"
我嘗試了各種解決方案,例如:
$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)
}
Pankaj的答案更好,但是如果您絕對需要使用on-mousever
,則可以用其HTML實體替換單引號和雙引號,這將防止它們破壞mousever
函數調用的外引號:
on-mouseover="mouseover(\"{{ landmark.name.replace(/'/g, "'").replace(/"/g, """) }}\")"
然后landmark.name
可以安全地包含單引號或引號,並且不會引起任何問題。
因此,如果landmark.name
等於“ Duke's Car”,那么您的HTML將會像這樣渲染(在Angular編譯之后):
on-mousever="mouseover(\"Duke's Car\")"
每當瀏覽器呈現此內容時, '
HTML實體將成為一個單引號: '
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.