【发布时间】:2011-11-21 08:07:23
【问题描述】:
我刚刚意识到我误解了Backbone.View 的el 属性。基本上我的视图需要基于其模型属性的动态id 属性。我以为我可以正常工作,因为我只是在模板中指定了它:
<script type="text/template" id="item_template">
<li class="item" id="{{identifier}}">
<span class="name">{{name}}</span>
</li>
</script>
但是,我意识到 Backbone 实际所做的是将这个编译后的模板放入另一个元素中,默认情况下为 div。我通过阅读文档了解了更多相关信息,但我仍然对如何创建动态 id 感到困惑。
最好,我很想找到一种方法,使上述模板中的内容充当我的el,因为它已经拥有我想要的一切,但我不知道这是否可能。所以我想知道是否有一种方法可以指定动态的id 属性。
我尝试在 initialize 方法中设置它,this.id = this.model.get('attr') 但它似乎没有任何效果,可能是因为此时已经太晚了。
我目前正在做的只是使用 jQuery 在render() 期间添加id:
this.el.attr(id: this.model.get('identifier'));
它有效,但当然,我只是想问是否有通过 Backbone 进行此操作的首选方式。
【问题讨论】: