Backbone: 无法在 View 的 Attributes 方法中传递“data-”属性

创建于 2012-10-03  ·  8评论  ·  资料来源: jashkenas/backbone

我很喜欢在视图中设置属性......

Backbone.View.extend({
 属性: {
 数据属性:'我的数据'
 }
 });

...但是,由于键“data-attr”中的连字符,这会引发错误。

未捕获的语法错误:意外标记 -
我意识到这是 JavaScript 键值对象中的非法令牌,但是我希望 Backbone 为此提供一些解决方法,因为传递数据属性是最有可能的场景之一。 我一直在通过使用 jQuery 在渲染函数中设置属性来解决它:
渲染:函数(){
 this.$el.attr('data-attr', 'mydata"');
 }

这有效,但我想问问是否还有其他选择。

question

最有用的评论

您可以使用这样的函数:

attributes: function() {
  return {
    'data-attr': this.model.foo
  };
}

所有8条评论

是的——它只是一个 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 个人。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

gfranko picture gfranko  ·  18评论

jashkenas picture jashkenas  ·  7评论

PavelKoroteev picture PavelKoroteev  ·  10评论

etler picture etler  ·  13评论

rubiii picture rubiii  ·  12评论