在往集合里添加模型的时候,我们可以控制模型在集合里面的位置。比如我们可以给 add 方法添加一个 at 选项, 这个选项的值就是模型在集合里面的索引号。
或者,如果只想把模型追加到集合的最后一个位置上,可以使用 push 方法。想要把模型添加到集合的最开始的位置上,可以使用 unshift 方法。
这里我们可以准备一个集合 ... 然后先把 note2 这个模型添加到这个集合里面 ..
var noteCollection = new NoteCollection(note2)
下面,我们可以使用 push 方法,追加一个模型到集合里面 ...
noteCollection.push(note1)
这个方法会返回追加到集合里面的这个模型 .. 再查看一下这个集合 ... noteCollection
打开 models ... 排在最后位置上的这个模型,就是刚才我们使用 push 方法追加到这个集合里的那个 note1 模型 ...
unshift
下面我们再用 unshift 方法,去在集合的最前面添加一个模型 ...
noteCollection.unshift(note3)
方法也会返回这个新添加的模型 ... 再查看一下这个集合 noteCollection
你会看到,索引号是 0 ,也就是排在第一位置上的这个模型 ... 就是刚才用 unshift 方法添加进来的 id 号是 3 的这个模型 ...
at:index
在 add 方法里面,可以指定一个 at 选项参数,它可以决定添加的模型在集合中的索引号 ... 也就是,你可以决定这个模型在集合中出现的位置。
先刷新一下页面 ... 重新再去创建一个模型 .. 这里,我们把 note1 ,还有 note2 这两个模型添加到这个集合里面 ...
var noteCollection = new NoteCollection([note1, note2])
再查看一下 ... noteCollection ... 打开 models 这个属性 ... 现在这里索引号是 0 的笔记模型就是 note1 这个模型 ...
索引号是 1 的这个模型是,note2 这个模型 ...
现在,如果我们想新添加一个模型,让它的索引号是 1 ,也就是让它在 note3 这个模型的位置上 .. 可以这样 ... 使用集合的 add 方法 ... 指定一下要添加的模型 ... note3 ... 然后,给它一个选项参数 ... 这个选项是一个对象,所以要放在一组花括号里面 ... 再设置一下 at 这个选项 ... 它的值,就是要添加的这个模型的索引号 ... 这里,我们设置成 1 ...
noteCollection.add(note3, {at: 1})
回车 ... 再去查看一下这个集合 ... noteCollection ...
打开 models 属性 ... 再打开索引号是 1 的这个模型 ...
你会发现,这个模型就是刚才我们用 add 方法添加进来的 ... 原来这个位置上的模型是 note2 ... 现在,因为我们添加 note3 的时候,手工设置了它的索引号为 1 ,所以,这里就会是这个模型 ...
note2 这个模型的索引号,会往下移一位 ...
也就是,现在索引号是 2 的这个模型,就是 note2 这个模型 ...