我在Backbone js工作,我正在尝试使用fetch填充数据模型。问题是fetch似乎正在工作,但我的模型没有填充数据。
代码片段:
Backbone.emulateHTTP = true;
Backbone.emulateJSON = true;
ComponentsModel = Backbone.Model.extend({
initialize : function() {
},
defaults : {
component_id : null
},
urlRoot : "/components/ajax_component",
});
ComponentsView = Backbone.View.extend({
el : $('body'),
events : {
'change #component-selector' : 'changeComponent',
},
initialize : function() {
_.bindAll(this, 'render', 'changeComponent');
this.render();
},
changeComponent : function(e) {
var clickedEl = $(e.currentTarget);
var value = clickedEl.attr("value");
var component = new ComponentsModel({id :value, component_id :value });
component.fetch();
component.toJSON();
alert(component.get('component_name'));
},
render : function() {
},
});
从服务器返回的JSON如下所示:
{"component_id":"1","component_name":"Test Component 1","component_description":"A simple test component","component_required":"","user_id":"1","component_approved":"0","component_price":"0","component_overview":"'"}
警报始终未定义。我错过了什么吗?
答案 0 :(得分:7)
获取是异步的,这就是它有success
和error
回调的原因。因此,当您尝试获取该属性时,无法确定是否已获取数据。
试试这个:
component.fetch({
success: function(){
// Now you got your data
}});