你可以在Backbone.js集合上设置属性吗?如果是这样,怎么样?

Cha*_*uza 6 backbone.js

我刚刚进入backbone.js,我认为最好的方法是实际构建一个待办事项列表(是的......非常原创).除了幽默,我已经搜索了谷歌和文档以及stackoverflow,当然,这是一种向集合添加属性的方法.因此,在我的情况下,待办事项列表是列表项的集合.但是根据我的设计,Todo List可以有一个标题,我希望能够创建多个列表.

var TodoList = Backbone.Collection.extend({
    model: ListItem
});

//is this possible for collections?
var newTodoList = new TodoList({name: "My first list"}); 
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助!欣赏它!

the*_*heo 11

是的,这是可能的.看一下Collection构造函数的签名:

新收藏([型号],[选项])

所以你可以像这样写:

var ListItem = Backbone.Model.extend({});
var TodoList = Backbone.Collection.extend({
    model: ListItem,
    initialize: function(models, options) {
        options || (options = {});
        if (options.title) {
            this.title = options.title;
        };
    }
})

var iPromise = new TodoList([], {
    title: 'NY Resolutions'
})

console.log(iPromise.title);
Run Code Online (Sandbox Code Playgroud)

  • 别客气.但我想多一点,现在我觉得我的答案不是你想要的:).我想你希望能够为change事件添加监听器,以及你可以使用`Models`属性.但是通过上面提到的方法,你无法做到.因为这个`Collection`属性没有什么特别之处 - 它只是对象属性而Backbone不会以任何方式使用它.所以我认为创建一个包含你的`TodoList`的另一个模型会更好.稍后我会举一个例子.对不起,如果我迷惑你. (6认同)