2

以下示例完美运行(http://jsfiddle.net/WmsnR/1/)。这是一个完全没有风格的超级基本的待办事项清单。这是我第一次尝试主干,我是根据教程构建的。一位高级开发人员告诉我,也许我应该为每个 li 创建另一个视图,以便在需要时附加不同的事件。那么如何构建另一个与我之前做过的视图相关的视图呢?

我尝试了类似以下的方法,但没有奏效:

        var Item = Backbone.View.extend({

            events: {
              'click span': 'deleteTask'
            },  

            deleteTask: function(evt){
                var task = $(evt.currentTarget).closest('li');
                task.remove();
            }       

        });

                   var item = new Item();
4

2 回答 2

2

您必须记住为调用列表中的每个模型添加视图。

整体架构看起来像这样:

+------------------+
| Parent List View |
|  +-----------+   |
|  | Item View |   |
|  +-----------+   |
|  +-----------+   |
|  | Item View |   |
|  +-----------+   |
+------------------+

父列表视图将是列出每个项目的容器视图,为每个项目创建一个视图。

因此,您对父列表的渲染看起来像这样:

     render: function () {

        // Sort and render each item, starting with a depth of zero.
        _.each(listOfModels,
            function (item) {
                var view = new ItemView({model:item});
                $(this.el).append(view.render().el);
            }, this);

        return this;
    },

这只是粗略的想法。

查看JSFiddle 的更新以了解具体的实现思路。

于 2013-08-15T12:14:15.083 回答
0

我认为高级开发人员的意思是拥有一个包装视图,它将通过初始化和其他功能加载其他视图。

就像:(前面有可怕的伪代码)

Master View{
     initialize: make item1
                 make item2
}

item1{}

item2{}

编辑:

如果可能的话,我会发表评论,但我的排名还不够高。

于 2013-08-15T12:09:12.907 回答