Kat*_*ate 16 html javascript handlebars.js
HTML和把手:
onclick='shareItem("{{name}}")'>
Run Code Online (Sandbox Code Playgroud)
如果在其中包含双引号,则无法成功传递安全转义的名称.
onclick="shareItem('{{name}}')">
Run Code Online (Sandbox Code Playgroud)
如果名称中包含单引号,则无法成功传递安全转义的名称.
我需要处理两种可能性 - 甚至在同一个字符串中.
必须定义JS变量并将其传递给反斜杠加法器感觉很草率.
有没有更清洁的方法来做手柄或小胡子?
Sey*_*ong 18
您需要注册一个操纵上下文的内联帮助器.在您的情况下,您需要转义单引号或双引号.
Handlebars.registerHelper('escape', function(variable) {
return variable.replace(/(['"])/g, '\\$1');
});
Run Code Online (Sandbox Code Playgroud)
通过注册这样的帮助器,您可以将它与变量一起使用以实现您想要的效果.
{{ escape name }} # expects to escape any ' or "
Run Code Online (Sandbox Code Playgroud)
我写了一个简单的例子来在jsfiddle上演示这个:http://jsfiddle.net/VLy4L/