簡體   English   中英

AngularJS轉義引號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM