1

私は主に、オプション (最初のモデル以降のモデル) が参照によって渡されるかどうか疑問に思っていました。

合格する最初のモデル:

App.testModel = Backbone.Model.extend({
    defaults: {
        passBy: "value"
    }
});

オプションとして渡す 2 番目のモデル:

App.testModelOptions = Backbone.Model.extend({
    defaults: {
        passBy: "value"
    }
});

2 つのモデルの passedBy を「参照」に設定するビュー

App.TestView = Backbone.View.extend({
    initialize: function() {
        this.model1 = this.model;
        this.model2 = this.options.model2;

        this.model1.set({passBy: "reference"});
        this.model2.set({passBy: "reference"});
    }
});

主要:

// Router
App.AppRouter = Backbone.Router.extend({
    routes:{
        "":"test"
    }

    test:function() {
        this.testModel = new App.testModel();
        this.testModel2 = new App.testModelOptions();
        this.testView = new App.TestView({model: this.testModel, model2: this.testModel2});
        console.log(this.testModel.get("passBy"));
        console.log(this.testModel2.get("passBy"));
    }
});
4

1 に答える 1

1

はい。モデルのインスタンスを作成し、それを 20 個のビューに渡し、それらのビューの 1 つを呼び出す場合、set({passBy: "reference"})これら 20 個のビューすべてがメモリ内の同じモデルへの参照を持っているため、プロパティはすべてのビューのモデルで更新されます。ビューに渡されるオブジェクトについても同様です。

于 2012-10-04T14:31:05.817 に答える