除了在创建集合的时候,可以为集合指定一些模型,我们也可以在创建集合以后,继续去为集合添加新的模型进去。我们可以使用 add 这个方法。
下面,我们先去创建一个空白的集合 ...
var noteCollection = new NoteCollection
再看一下 ...
noteCollection
length 属性的值是 0 ,表示这个集合里面还没有包含模型。下面,我们用 add 方法去添加一个模型到这个集合里面。
noteCollection.add(note1)
这样,会把创建的 note1 这个模型添加到这个集合里面。再查看一下 ... noteCollection ... 现在,这里已经有了一个模型 ... 就是刚刚添加的那个 note1 这个模型 ...
使用 add 方法,也可以同时把多个模型添加到集合里面。 需要给 add 方法传递一个数组参数 ... 这个数组里的项目就是要添加到集合里面的模型 ...
noteCollection.add([note2, note3])
这样会把 note2 还有 note3 添加到 noteCollection 这个集合里面。可以再确认一下 ... noteCollection ...
显示这个集合里面,现在有三个模型 ...
(# 清屏幕 command + K)
merge
如果要添加的模型在集合里面已经存在了,默认,会跳这去,不过,我们也可以给 add 方法添加一个选项参数,把 merge 设置成 true ,这样要添加的模型会跟已有的模型合并到一块儿 ...
使用 noteCollection 的 add 方法 ... 这个方法可以添加已有的模型 .. 或者也可以直接在这里指定模型的属性,去创建一个新的模型 ... 然后添加到这个集合里面 ... 因为在定义这个集合的时候已经指定了跟这个集合相对应的模型是 Note ... 所以,在这里新添加的模型自动就会是一个 Note 类型的模型。
noteCollection.add({id:1, title: '今天天气不错'})
在这里,我们设置一下模型的 id 属性为 1 ,这个 id 为 1 的模型已经在这个集合里面存在了 ... 然后再设置一下 title 标题...
按下回车 ...
再打开 id 是 1 的这个模型看一下 ... 这里它的 title 属性的值,还是 西红柿炒鸡蛋的做法。并没有变化 ..
下面,我们再给 add 方法添加一个选项参数 ... 设置一下 merge 属性的值为 true ...
noteCollection.add({id:1, title: '今天天气不错'}, {merge: true})
回车 ... 再去看一下 ... 现在,你会看到,在这个集合里面,id 号是 1 的这个模型的标题 ... 就从刚才的 西红柿炒鸡蛋,变成了 今天天气不错 ...
而且这个变化也会影响到原来的这个模型 ... 可以去查看一下这个模型的属性 ... 这个模型应该叫做 note1 ...
note1.attributes
同样,它的 title 属性,也会变成 今天天气不错 ...