首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Backbone中的模型属性名称

Backbone中的模型属性名称
EN

Stack Overflow用户
提问于 2013-05-29 23:17:15
回答 2查看 412关注 0票数 3

我有一个由REST API提供的模型,其中一个name属性如下:

代码语言:javascript
运行
复制
defaults: {
...
"user-name" : "",
...
}

然后,当我尝试以这种方式在模板中呈现它时:

代码语言:javascript
运行
复制
<script type="text/template" id="list">
<strong>User name: </strong>    <%= user-name %>
</script>

呈现其他属性没有问题,但是这样,它只识别名称“user”的第一部分,并且连续地给出一个错误。有没有办法在渲染时更改名称,或者转义符号'-',这样模板就能识别它?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-29 23:24:31

-不是有效的变量字符,因此您必须将user-name更改为其他字符。

如果您不能在整个模型中更改属性,而只是通过调用model.toJSON()将模型属性传递给模板,则可以在将该变量传递给模板之前更改该变量:

代码语言:javascript
运行
复制
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
// ...
票数 2
EN

Stack Overflow用户

发布于 2013-05-29 23:29:18

您可以将数据包装到其他对象中,并使用括号索引器语法。因此,不是:

代码语言:javascript
运行
复制
_.template("<%= user-name %>", {"user-name": "..."} );

您可以使用:

代码语言:javascript
运行
复制
_.template("<%= model['user-name'] %>", { model: {"user-name": "..." } } );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16817766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档