Backbone.js 在集合中下划线indexOf
我已经四处寻找答案了,但运气不好。 基本上,我再次回顾了Addy Osmani主干指南,似乎我在这里无法理解这段代码Backbone.js 在集合中下划线indexOf,backbone.js,comparator,indexof,Backbone.js,Comparator,Indexof,我已经四处寻找答案了,但运气不好。 基本上,我再次回顾了Addy Osmani主干指南,似乎我在这里无法理解这段代码 var people = new Backbone.Collection; people.comparator = function(a, b) { return a.get('name') < b.get('name') ? -1 : 1; }; var tom = new Backbone.Model({name: 'Tom'}); var rob = ne
var people = new Backbone.Collection;
people.comparator = function(a, b) {
return a.get('name') < b.get('name') ? -1 : 1;
};
var tom = new Backbone.Model({name: 'Tom'});
var rob = new Backbone.Model({name: 'Rob'});
var tim = new Backbone.Model({name: 'Tim'});
people.add(tom);
people.add(rob);
people.add(tim);
console.log(people.indexOf(rob) === 0); // true
console.log(people.indexOf(tim) === 1); // true
console.log(people.indexOf(tom) === 2); // true
var-people=new-Backbone.Collection;
people.comparator=功能(a,b){
返回a.get('name')
我不知道people.comparator如何重新排序集合,即使它没有在任何地方调用,另外返回1或-1如何重新排序它。
还是在创建集合或对集合本身调用indexOf后隐式调用它?来自:
默认情况下,集合没有比较器。如果你定义一个
比较器,它将用于以排序方式维护集合
秩序。这意味着在添加模型时,将在
在collection.models中更正索引
因此,每次您调用
people.add(…)
时,集合都会使用您使用people.comparator=function(a,b){…}
设置的比较器将模型插入到有序位置。非常感谢您的提醒!事实上,我不确定比较器函数,因为在那次讲座中没有提到。