Backbone.js - 将2个模型传递给1个视图

kah*_*aha 14 backbone.js

我正在尝试将2个模型传递给视图,但它似乎无法正常工作.这是我的例子:http://jsfiddle.net/kahhor/jp4B6/14/你可以看到第二个警告显示未定义...

可能是我有错误的做法.我要做的是:在View1绑定事件'change'Model1...通过单击按钮View2,调用函数,Model1其中更改值,并自动呈现View1,因为它被绑定以更改事件.

但是不要忘记它View2也有它自己Model2,我在视图之外创建并且传递它new View2({model:Model2});.

起初看起来可能很混乱,但我认为骨干可以做到这一点很简单.我只是不知道该怎么做:)

谢谢,

sle*_*led 23

您可以从中访问自定义参数(选项)

window.PopupView = new PopupView({ model: LeftNotificationM, model2: PopupM});
Run Code Online (Sandbox Code Playgroud)

像这样:

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
});
Run Code Online (Sandbox Code Playgroud)

结论:可以在中找到视图的"无法识别的选项" this.options


Joe*_*oel 5

我刚刚通过谷歌找到了这个问题和Sled的答案,这对我帮助很大 - 但只是为了更新这个2岁的问题并且可能会让其他一些Google员工头疼:

Backbone Views不再自动附加传递给构造函数的选项作为this.options,但如果您愿意,可以自己执行.

Vitaliy对类似问题的回答向您展示了如何:

initialize : function (options) {
  this.options = options || {};
}
Run Code Online (Sandbox Code Playgroud)