backbone.js collection.get() undefined
backbone.js collection.get() undefined
我正在使用Backbone,我有一个由7个模型组成的集合。
我想从收藏品中拿出一个模型。但是,我尝试的所有操作都返回undefined
。
以下是我如何填充集合
var coll = new TestCollection();
coll.fetch();
一个简单的控制台日志调用显示集合是从JSON文件填充的
child
_byCid: Object
_byId: Object
_onModelEvent: function () { [native code] }
_removeReference: function () { [native code] }
length: 7
models: Array[7]
__proto__: ctor
然而,为了从集合中获取其中一个模型,我尝试了一大堆方法,包括coll.at(1)
和coll.get(1)
,但每个都返回undefined
。
有人有什么想法吗?
fetch
方法是一个AJAX调用,这意味着它是异步的。您的console.log
调用将一个实时引用放入控制台(因此它有点异步),因此您最终得到以下事件序列:
- 您呼叫
coll.fetch()
- 骨干网发送一个
$.ajax
呼叫 - 您调用
console.log(coll)
,控制台中会出现一个实时引用 - 您调用
coll.at(1)
或coll.get(1)
,但一无所获,因为2尚未从服务器返回 - 2从服务器返回并填充集合
- 然后查看控制台,但
coll
现在已经填充,因此控制台中的coll
引用包括5中返回的模型 - 困惑
成功的fetch
会触发"reset"
事件,因此如果您想知道集合何时填充,则应该侦听该事件:
coll.on('reset', this.some_method);
或者,对于一次性通知,您可以使用success
回调:
coll.fetch({
success: function(collection, response) {
//...
}
});
在较新版本的Backbone中,如果您想要重置事件,则需要将reset: true
选项传递给fetch
:
coll.fetch({ reset: true }); // This will now trigger a 'reset' event
相关文章:
- JQuery - get(0) undefined
- backbone.js collection.get() undefined
- $resource.get给出“;TypeError:undefined不是函数;
- Collection.get returning undefined in backbone.js
- 主干.js Model.get() 返回 undefined, 范围使用 coffeescript + coffee t
- object Object & undefined GET variables
- .get()需要回调函数,但得到了一个[object Undefined]
- 即使字段不为空,Parse.Object.get()也返回Undefined
- new Parse.View and get"TypeError:undefined不是函数;
- app.get在Node/Express中返回undefined
- (ember.js)Get-Binding属性返回undefined
- AngularJS $http.get returns undefined
- Backbone.js fetch() JSON to model get() returns undefined
- jQuery - get属性返回undefined
- tinyMCE.get("content") is undefined
- 解析request.object.get("KEY")总是返回undefined
- Socket io get is undefined
- Get "undefined不是函数"当我试图使用我的收藏
- TypeError: undefined不是一个函数GET请求/数据库调用
- 美元AngularJS http.Get返回undefined,并且$http()不是函数