Uncaught SyntaxError:如果在属性中使用print,则意外的标识符

时间:2016-11-05 07:20:01

标签: javascript underscore.js

我们使用Underscore 1.8.3作为模板引擎。

以下是给出错误的代码:

<script>
        {{  if(rc.u_type==1){ t_checked="checked"; } }}                 
</script>
<label><input type="radio" name="u_type" value="2" {{ print(t_checked) }} > User </label>

此处在输入标记属性中打印t_checked变量会产生错误Unexpected Identifier

但是,如果我们在其他地方使用相同的{{ print(t_checked) }},那就没关系。

如何根据提到的模板数据中的值设置属性?

1 个答案:

答案 0 :(得分:1)

由于我无法使用您提供的示例重现问题,我只想指出在模板中声明一个新变量是如何完全避免的。

只需使用{{ if(rc.u_type==1){ }}checked="checked"{{ } }}即可。

&#13;
&#13;
var html = '<label><input type="radio" name="u_type" value="2" {{ if(rc.u_type==1){ }}checked="checked"{{ } }}> User </label>';

var template = _.template(html, {
  evaluate: /\{\{([\s\S]+?)\}\}/g
});

console.log(template({
  rc: {
    u_type: 1
  }
}));
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
&#13;
&#13;
&#13;