Javascript 主干提取过程
我有从服务器收集数据的主干模型:Javascript 主干提取过程,javascript,backbone.js,backbone-model,Javascript,Backbone.js,Backbone Model,我有从服务器收集数据的主干模型: Job.Models.Response = Backbone.Model.extend({ defaults: { 'authStatus': false, 'id': '1', 'name': 'name', }, urlRoot: '/static/js/public/json/' }); 我有一个带有data id=“id from/static/js/public/json/”的按钮 如
Job.Models.Response = Backbone.Model.extend({
defaults: {
'authStatus': false,
'id': '1',
'name': 'name',
},
urlRoot: '/static/js/public/json/'
});
我有一个带有data id=“id from/static/js/public/json/”的按钮
如果在获取后我将console.log记录我的模型,它不会更新,但数据获取成功。
这里会有什么问题?
这里我初始化了我们的插件:
var responseModel = new Job.Models.Response;
var response = new Job.Views.Response({ model: responseModel });
我解决了我的问题。最后一个观点
Job.Views.Response = Backbone.View.extend({
el: '.ra-response-button',
events: {
"click": "load"
},
load: function () {
var that = this;
var info = that.$el.data();
that.model.set({ id: info.id});
that.model.fetch({
success: function() {
if (that.model.attributes.authStatus === true) {
new Job.Views.ResponseForm({ model: that.model })
}
else {
new Job.Views.ResponseAuth({ model : that.model })
}
},
error: function() {
alert('Error, repeat please.')
}
});
}
});
很高兴你明白了。您始终可以将成功和错误回调传递给fetch()和save(),但是在完成fetch或save时附加调用的回调的一种更强大的方法是利用返回的延迟对象。fetch()和save()都返回一个jQuery延迟对象,允许您执行类似于
$.when(that.model.fetch()).done(function(){/*在这里做某事*/})的操作代码>--请记住,使用$.when()可以将尽可能多的延迟对象传递给它,并等待它们全部完成。我经常用它作为主干。
Job.Views.Response = Backbone.View.extend({
el: '.ra-response-button',
events: {
"click": "load"
},
load: function () {
var that = this;
var info = that.$el.data();
that.model.set({ id: info.id});
that.model.fetch({
success: function() {
if (that.model.attributes.authStatus === true) {
new Job.Views.ResponseForm({ model: that.model })
}
else {
new Job.Views.ResponseAuth({ model : that.model })
}
},
error: function() {
alert('Error, repeat please.')
}
});
}
});