Din*_*ine 17 javascript jquery backbone.js
我需要在Collection.length-2位置的Collection中插入一个模型.集合中的最后一个模型应该始终保持集合中的最后一个模型.
到目前为止我尝试了什么:
我在Collection"Pages"中添加了一个"页面"模型,然后尝试通过更改它们的顺序来交换它们:
var insertedpage = Pages.at(Pages.length-1);
var lastpage = Pages.at(Pages.length-2);
insertedpage.set({sequence: Pages.length-1});
lastpage.set({sequence: Pages.length});
我还试图删除最后一页,然后添加一个新页面,然后重新添加最后一页.
var lastpage =  Pages.pop();
Pages.add({example1: example2});
Pages.push(lastpage);
这些都不起作用.新添加的页面仍显示为Collection中的最后一个模型.在此之后我需要调用某种订单功能吗?
Rob*_*ska 55
Backbone.Collection.add()获取一个options支持at用于指定索引的键的对象.
传递
{at: index}将模型拼接到指定的集合中index.
例:
Pages.add({ foo: bar }, { at: Pages.length - 2 })
小智 9
与Rob Hruska一样的建议Backbone.Collection.add(),at在options对象中使用.
Pages = new Backbone.Collection([
  {id:1, foo:'bar'},
  {id:2, foo:'barista'}  /* Last model should remain last */
]);
/* Insert new "page" not at the end (default) but length minus 1 */
Pages.add({id:3, foo:'bartender'}, { at: Pages.length - 1 });
Pages.at(0).id === 1; // true
Pages.at(Pages.length - 2).id === 3; // true
Pages.at(Pages.length - 1).id === 2; // true
你提到的Pages似乎是按属性排序sequence; 你碰巧comparator在Pages系列上定义了一个函数吗?
另一个问题是,sequence当您将新页面添加到第二个位置时,是否要更新当前集合中所有现有页面模型的此属性?或者那个属性试图完成你原来的问题?
| 归档时间: | 
 | 
| 查看次数: | 19500 次 | 
| 最近记录: |