我有 IdentificationView ,必须在不同的应用中调用另一个视图的方法:
var MailingAddressView= Application.Views.ItemView.extend({
setAddress: function(address) {
if (address != null) {
// this.autoCompleteBox.data('inputData') = address;
ProWeb.EXTRACTED_ADDRESS = address;
this.model.set('mailingAddress', address);
}
}
});
现在我的 MailingAddressView 是这样的:
{{1}}
我想知道从另一个视图调用一个视图的方法的方法是什么。请提供建议。
修改
这就是我的应用程序的设置方式:
因此,在我的 NameIdentificationView 中,我正在调用 MailingAddress 应用程序,该应用程序又控制调用控制器及其视图的所有过程。
答案 0 :(得分:1)
您可以在共享模型上使用事件通道,触发和侦听事件以多种方式执行此操作,更简单的方法是使用Bsckbone事件。
在来电者中触发事件
loadMailingAddressView: function () {
//call to mailing address view method setAddress() from here
Backbonw.trigger('setAddress')
})
并在callee的initalize中倾听
var MailingAddressView = Application.Views.ItemView.extend({
initialize: function() {
Backbone.on('setAddress', this.setAddress)
},
setAddress: function(address) {
if (address != null) {
// this.autoCompleteBox.data('inputData') = address;
ProWeb.EXTRACTED_ADDRESS = address;
this.model.set('mailingAddress', address);
}
},
});
确保在触发事件
时初始化被调用者视图