HTML和把手逃避單引號和雙引號。車把傳遞車把時表達
onclick="shareItem('{{name}}')">
當它有單引號時,不能成功傳遞安全轉義的名稱。
我需要處理兩個事件 - 甚至在同一個字符串中。
感覺馬虎不得不定義一個JS變量並將其傳遞給反斜槓加法器。
是否有一個更清潔的方法來做到這一點與Handlebars或小鬍子?
HTML和把手逃避單引號和雙引號。車把傳遞車把時表達
onclick="shareItem('{{name}}')">
當它有單引號時,不能成功傳遞安全轉義的名稱。
我需要處理兩個事件 - 甚至在同一個字符串中。
感覺馬虎不得不定義一個JS變量並將其傳遞給反斜槓加法器。
是否有一個更清潔的方法來做到這一點與Handlebars或小鬍子?
您需要註冊一個操縱上下文的inline helper。在你的情況下,你需要轉義單引號或雙引號。
Handlebars.registerHelper('escape', function(variable) {
return variable.replace(/(['"])/g, '\\$1');
});
通過註冊這樣的幫手,你可以使用它與一個變量來實現你想要的。
{{ escape name }} # expects to escape any ' or "
我寫了一個簡單的例子來說明這一點上的jsfiddle:http://jsfiddle.net/VLy4L/
我有試圖逃跑單引號的問題,我用的是handleblars提供幫助,您可以用三重括號{{{變量}}}轉義
感謝您的迴應!不過,我在這裏看到的問題是,我將變量直接添加到onClick事件中作爲表達式,這就是它的中斷點。我周圍看到的唯一方法就是將表達式放入JavaScript中,這種...感覺馬虎。 – Kate
@Kate也許你可以使用['data- *'attributes](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes)臨時存儲數據,然後在javascript中訪問它功能? –
謝謝,Seyeong!我繼續這樣做 - 在將名稱設置爲data- *屬性後,通過onClick事件傳入整個對象。 – Kate