Backbone.js-将2个模型传递给1个视图
我试图将两个模型传递给视图,但它似乎不起作用。这是我的例子:正如你们所看到的,第二个警报显示未定义的 可能是我的方法不对。我试图做的是:在Backbone.js-将2个模型传递给1个视图,backbone.js,Backbone.js,我试图将两个模型传递给视图,但它似乎不起作用。这是我的例子:正如你们所看到的,第二个警报显示未定义的 可能是我的方法不对。我试图做的是:在View1bind event'change'中,将Model1绑定到。。。然后单击View2中的按钮,调用Model1中的函数来更改值,并自动呈现View1,因为它已绑定到更改事件 但是不要忘记View2也有自己的Model2,我在视图之外创建了它,然后像newview2({model:Model2})一样传递它 一开始可能看起来很困惑,但我认为主干可以做一
View1
bind event'change'
中,将Model1
绑定到。。。然后单击View2
中的按钮,调用Model1
中的函数来更改值,并自动呈现View1
,因为它已绑定到更改事件
但是不要忘记View2
也有自己的Model2
,我在视图之外创建了它,然后像newview2({model:Model2})一样传递它代码>
一开始可能看起来很困惑,但我认为主干可以做一件简单的事情。我只是不知道怎么做:)
谢谢,您可以从
像这样:
window.PopupView = Backbone.View.extend({
// code left out
initialize: function () {
this.model.bind('change:notification_num', this.render);
alert(this.model);
// your model2 option:
alert(this.options.model2);
},
// code left out
});
结论:视图的“未识别选项”可以在中找到。选项添加此补丁并将任何选项直接传递给视图
Backbone.View.prototype._configureWithoutThis = Backbone.View.prototype._configure;
Backbone.View.prototype._configure = function(options) {
this._configureWithoutThis(options);
_.extend(this, this.options);
}
我刚刚通过谷歌找到了这个问题和Sled的答案,这对我帮助很大——但只是为了更新这个2年前的问题,或许还能让其他谷歌人省去头疼:
主干视图不再自动附加传递给的选项
构造函数作为this.options,但如果愿意,您可以自己做
向您展示如何:
initialize : function (options) {
this.options = options || {};
}
哇,比你还管用。我被困了两天:)我只有两个问题。1.我在哪里可以读到更多关于这个的信息。选项,我以前看过,但我真的不明白如何使用它。。。2.我想你明白我想做什么。我想知道这是不是一个好的方法?或者有更好的(更正确的)方法吗?您好,1)我刚刚看了一下我喜欢的backbone.js的源代码:很简单:)2)一个模型可以附加到多个视图,这没关系。请注意命名“model2”不是一个很好的名称;)是的,我知道,我只是展示了一个简单的示例:)再次感谢:)model2事件绑定似乎不起作用,例如,model2.on('change:field',this.doSomething,this)
当尝试使用两个模型制作模板时,这是如何工作的?
initialize : function (options) {
this.options = options || {};
}