现在,我们可以假设app.Todos是一个集合。然后假设我们触发了filterAll函数。
filterOne : function (todo) {
console.log(todo);
todo.trigger('visible');
},
filterAll : function () {
console.log(app.Todos);
app.Todos.each(this.filterOne, this);
},
filterOne : function (todo) {
console.log(todo);
todo.trigger('visible');
},
filterAll : function () {
console.log(app.Todos);
app.Todos.each(this.filterOne, this);
},
在我阅读了关于每个的下划线文档后,他们说each_.each(list,iterator,[context]),迭代一个元素列表,然后依次产生一个迭代器函数。
但是filterAll函数使用每个函数迭代一个函数this.filterOne?那是什么意思?这个filterOne不是列表元素,请帮帮我。
由于
答案 0 :(得分:2)
从Underscore文档中,您可以看到_.each
如下
_.each(list, iterator, [context])
此处列表也可以对应模型。
所以这可以写成
`app.Todos.each(function() { } , this);`
**OR**
_.each(app.Todos.models, function() { } , this);
所以这相当于
app.Todos.each(function(todo) {
console.log(todo);
todo.trigger('visible');
}, this);
或强>
_.each(app.Todos.models, function(todo) {
console.log(todo);
todo.trigger('visible');
}, this);
答案 1 :(得分:1)
这个filterOne不是列表元素,请帮帮我。
下划线功能在骨干实例上实现为方法。所以你的
app.Todos.each(this.filterOne, this);
相当于
_.each(app.Todo.models, this.filterOne, this);
_(app.Todo.models).each(this.filterOne, this);