And*_*rew 14 javascript rest backbone.js
我有这样的代码:
var MyModel = Backbone.Model.extend();
var MyCollection = Backbone.Collection.extend({
url: '/url/',
model: MyModel
});
var coll = new MyCollection();
Run Code Online (Sandbox Code Playgroud)
网址是正确的,并返回正确的json.但是,如果我尝试使用下一个代码:
$('#fetch').click(function(){
coll.fetch();
console.log(coll.toJSON());
});
Run Code Online (Sandbox Code Playgroud)
如果我将每个语句放在不同的事件中,它的工作正确.但我需要立即知道收集的时间长短.这该怎么做?
And*_*are 24
请记住,这fetch是对服务器的异步调用.要使代码按预期工作,请创建一个可以在从服务器刷新其内容后调用的success函数Backbone.Collection:
$('#fetch').click(function(){
coll.fetch({
succcess: function() {
console.log(coll.toJSON());
}
});
});
Run Code Online (Sandbox Code Playgroud)
显然你的应用程序不需要真正调用,console.log所以一个更真实的世界示例将使用骨干的事件绑定,如下所示:
coll.bind('refresh', someFunction);
coll.fetch();
Run Code Online (Sandbox Code Playgroud)
使用这种方法,骨干将someFunction在集合刷新时调用.这非常有用,尤其是当您想要绑定集合的视图someFunction的render功能时.
coll.bind('refresh', yourView.render);
coll.fetch();
Run Code Online (Sandbox Code Playgroud)
从版本0.5.0开始,Collection.refresh被重命名为Collection.reset.
所以在安德鲁的回答中(我觉得非常有用):
coll.bind('refresh', someFunction);
Run Code Online (Sandbox Code Playgroud)
变
coll.bind('reset', someFunction);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9716 次 |
| 最近记录: |