我有一个由REST API提供的模型,其中一个name属性如下:
defaults: {
...
"user-name" : "",
...
}
然后,当我尝试以这种方式在模板中呈现它时:
<script type="text/template" id="list">
<strong>User name: </strong> <%= user-name %>
</script>
呈现其他属性没有问题,但是这样,它只识别名称“user”的第一部分,并且连续地给出一个错误。有没有办法在渲染时更改名称,或者转义符号'-',这样模板就能识别它?
谢谢!
发布于 2013-05-29 23:24:31
-
不是有效的变量字符,因此您必须将user-name
更改为其他字符。
如果您不能在整个模型中更改属性,而只是通过调用model.toJSON()
将模型属性传递给模板,则可以在将该变量传递给模板之前更改该变量:
var attrs = model.toJSON();
// change user-name to something else
attrs.user_name = attrs['user-name'];
// and delete it
delete attrs['user-name'];
// pass attrs to the template like normal
// ...
发布于 2013-05-29 23:29:18
您可以将数据包装到其他对象中,并使用括号索引器语法。因此,不是:
_.template("<%= user-name %>", {"user-name": "..."} );
您可以使用:
_.template("<%= model['user-name'] %>", { model: {"user-name": "..." } } );
https://stackoverflow.com/questions/16817766
复制相似问题