Backbone.js + Handlebars.js - {{#each}}而不是模型视图?

时间:2013-06-03 18:45:43

标签: backbone.js handlebars.js

我有一个名为Projects的集合,其中包含多个Project类型的模型。当我想列出所有项目时,我使用ListProjectsView。其render函数为集合中的每个项目生成ProjectView,从而可以通过将事件绑定到其名称来删除单个项目。

但是,现在我想使用Handlebars来创建模板。使用把手,使用each助手更容易显示所有集合模型,如下所示:

<ul>
  {{#each projects}}
  <li>{{this.name}}</li>
  {{/each}}
</ul> 

这很好但现在我想知道如何删除一个项目,因为我不再使用ProjectView了。我是否需要为每个id添加<li>,以便绑定事件?或者我是否必须使用ProjectView来执行此操作?

提前致谢。

1 个答案:

答案 0 :(得分:1)

这里的逻辑必须通过ListProjectsView运行。一种方法是按照您的说法执行操作并将data-id附加到每个li,然后在您的事件处理程序中获取目标

deleteProjectHandler : function(evt){
    var $target = $(evt.target), id = $target.data('id');

    this.deleteProject(id);
}

或类似的东西。