我很喜欢在视图中设置属性......
Backbone.View.extend({ 属性: { 数据属性:'我的数据' } });
...但是,由于键“data-attr”中的连字符,这会引发错误。
未捕获的语法错误:意外标记 -我意识到这是 JavaScript 键值对象中的非法令牌,但是我希望 Backbone 为此提供一些解决方法,因为传递数据属性是最有可能的场景之一。 我一直在通过使用 jQuery 在渲染函数中设置属性来解决它:
渲染:函数(){ this.$el.attr('data-attr', 'mydata"'); }
这有效,但我想问问是否还有其他选择。
是的——它只是一个 JavaScript 对象。 使用带引号的键。
attributes: {
"data-attr": "mydata"
}
啊,我以为我试过了! 谢谢!
对于将数据属性从视图模型中的属性传递给视图的 DOM 元素,您有什么建议? 像这样...
属性: { “数据属性”:this.model.foo }
我正在失去参考“这个”的余地。
未捕获的类型错误:无法读取未定义的属性“模型”
您可以使用这样的函数:
attributes: function() {
return {
'data-attr': this.model.foo
};
}
惊人的。 这完美地工作。 感谢您的及时回复!
不客气,但在未来,请不要像这样使用 bug 票来获得技术支持——首先尝试 IRC 频道或邮件列表。
高兴。 我首先尝试过,但 DocumentCloud IRC 中只有另外一个用户 Turjakas 没有响应。
一定是打错了——现在 freenode 上的 #documentcloud 中有 242 个人。
最有用的评论
您可以使用这样的函数: