javascript – 如何从骨干中的model.save()成功回调中触发视图事件?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何从骨干中的model.save()成功回调中触发视图事件?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1616字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何从骨干中的model.save()成功回调中触发视图事件?](/upload/InfoBanner/zyjiaocheng/732/7247e235f6e549e8b10c05b9399f1d76.jpg)
我需要通知我的网页用户从服务器返回的model.save()调用.
这种情况是单击触发视图中的getAnswer(),然后触发模型方法getAnswerServer(),该方法在模型上调用.save(),该模型传递一个访问响应的成功回调.
但是,如何通知用户(通过使用视图事件或其他任何内容)响应是什么?
以下是我的看法:
events: {"click button#active" : 'getAnswer'},
initialize: ...
render: ...
getAnswer: function() {
this.model.getAnswerFromServer();
},
该模型:
getAnswerFromServer: function() {
this.save({myAnswer1 : false}, {success: function(model, response) {
answer = model.get('answer');
if (answer === true) {
console.log("The answer is true! But how do I tell the user about it?");
}
else if (answer === false) {
console.log("The answer is false! But again, how do I tell this to my user?");
}
}});
}
理想情况下,我希望能够在此处调用事件处理程序并在不同的视图中触发事件,但我无法弄清楚如何从成功回调中访问它?甚至为这个视图触发自定义事件实际上也足够了.
谢谢!
解决方法:
您始终可以在要显示的视图上使用同步事件
选项1
// The view that you would like to show
initialize: function() {
this.listenTo(this.model, 'sync', this.render);
}
当要保存的模型与服务器同步时,将调用此方法.
但是如果您想要显示的视图不包含此模型,那么您始终可以定义自定义事件处理程序并触发这是回调..
选项2
var customEvents = _.extend({}, Backbone.Events);
this.save({
myAnswer1: false
}, {
success: function (model, response) {
answer = model.get('answer');
customEvents.trigger('notifyAnswer', { isAnswer : answer });
}
});
//在要显示的视图中
initialize: function() {
this.listenTo(customEvents, 'notifyAnswer', this.notify);
},
notify: function(data) {
if(data.isAnswer) {
// Show something
}
else {
// show something else
}
}
内容总结
以上是互联网集市为您收集整理的javascript – 如何从骨干中的model.save()成功回调中触发视图事件?全部内容,希望文章能够帮你解决javascript – 如何从骨干中的model.save()成功回调中触发视图事件?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。