Javascript 从另一个视图调用视图并在主干中传递模型的最佳方法
如何从另一个视图调用一个视图并将其传递给模型?在下面的代码中,我将在#按钮_contclick处调用另一个视图,如事件中所示。我可以简单地调用新视图并将其传递给模型还是以更好的方式存在 在调用方视图下方:Javascript 从另一个视图调用视图并在主干中传递模型的最佳方法,javascript,jquery,backbone.js,model-view-controller,Javascript,Jquery,Backbone.js,Model View Controller,如何从另一个视图调用一个视图并将其传递给模型?在下面的代码中,我将在#按钮_contclick处调用另一个视图,如事件中所示。我可以简单地调用新视图并将其传递给模型还是以更好的方式存在 在调用方视图下方: define(["jquery", "underscore","Handlebars","models/attore", "text!templates/backend0.html"], function ($, _, Handlebars,Attore,template) { var Ba
define(["jquery", "underscore","Handlebars","models/attore",
"text!templates/backend0.html"],
function ($, _, Handlebars,Attore,template) {
var BackendView0 = Backbone.View.extend({
template: Handlebars.compile(template),
events: {
'click #button_cont': 'twitter_list',
},
initialize: function () {
},
render: function (eventName) {
$(this.el).html(this.template());
return this;
},
twitter_list: function () {
var nome=$('#nome').val();
var cognome=$('#cognome').val();
var attore= new Attore({nome:nome,cognome:cognome});
--- Here I want call another view and pass it model attore---------
},
});
return BackendView0;
如果始终只有这两个视图,则可以通过存储对另一个视图的引用来告诉它们彼此的情况。然后传递模型的方法可以执行如下操作:
this.otherView.model = this.model;
var myNewView = new AnotherView({ model: attore });
此引用可以存储在视图初始化中,也可以通过setter方法存储:
setOtherView: function(view){
this.otherView = view;
}
您不会说您的两个视图是相互独立的还是层次结构的一部分。如果两种观点真的是分离的,那么它们根本不应该互相“呼叫”。每个视图都应该独立于页面的任何部分管理自己的页面部分
如果视图是层次结构的一部分(例如集合视图和模型视图),则父视图应负责创建子视图,在这种情况下,它可以像任何其他视图一样将模型作为输入传递给构造函数。我将这样做:
this.otherView.model = this.model;
var myNewView = new AnotherView({ model: attore });