从另一个视图调用视图并在Backbone中为其传递模型的最佳方式
Best way to call view from another view and pass it a model in Backbone
如何从另一个视图调用视图并将其传递给模型?在下面的代码中,我将在#button_click调用另一个视图,如事件中所示。我可以简单地调用新视图并将其传递给模型还是以更好的方式存在?
来电显示下方:
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;
此引用可以存储在视图初始化中,也可以通过setter方法存储:
setOtherView: function(view){
this.otherView = view;
}
您没有说明您的两个视图是彼此独立的还是层次结构的一部分。如果两种观点真的是分开的,那么他们根本不应该互相"呼唤"。每个视图都应该独立于页面的任何部分来管理自己的页面部分。
如果视图是层次结构的一部分(例如集合视图和模型视图),那么父视图应该负责创建子视图,在这种情况下,它可以像任何其他视图一样,将模型作为输入传递给构造函数。
我会这样做:
var myNewView = new AnotherView({ model: attore });
相关文章:
- 如何在视图模型contet更新更新上调用Jquery函数
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 在MVVM视图模型中处理应用程序范围的元素
- 将c#视图模型转换为javascript模型时转义HTML标记
- 使用knockout.js将数组绑定到视图模型
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- 聚合物:在不同的视图模型中多次使用元素
- 使用AMD时未定义淘汰组件视图模型
- 如何在Knockout.js中选中复选框时更新视图模型及其依赖项
- 无法将对象列表从视图模型设置为 javascript 变量
- 挖空视图模型函数仅影响最后一个实例
- 挖空.js嵌套视图模型不起作用
- 为什么我的视图模型不起作用
- 挖空、视图模型位于其他对象和数据绑定中
- 如何将经度/经度值绑定到挖空视图模型方法
- 挖空.js:等待视图模型实例化完成
- 在Knockout视图模型中调用jQuery插件是一种有效的模式
- KnockoutJS:如何避免在applyBindings上运行视图模型函数
- 使用knockoutjs操作视图模型
- Kendo UI自定义验证不适用于模板和视图模型