0

次のように、あるビューで別のビューを呼び出すことができると読んだと思いました。

ビュー 1

window.View1 = Backbone.View.extend({

    initialize: function () {
        this.render();
    },

    render: function () {
        $(this.el).html(this.template(this.model.toJSON()));
        return this;
    },

    events: {
        "click .start" : "start"
    },

     start: function () {
       var StartView = new View2({model: this.model});
    }
})

ビュー 2

window.View2 = Backbone.View.extend({

    initialize: function () {
        this.render();
    },

    events: {
        "click .nextstage"   : "nextstage"
    },

    nextstage: function () {
     alert('NEXT STAGE COMING UP');
    },

    render: function () {
        $("#content").html(this.template(this.model.toJSON()));
        return this;
    }
});

したがって、ルーターはビュー1で私をセットアップし、「開始」をクリックするとビュー2に移動します。次に、[次のステージ]をクリックして、クリックに基づいてビュー2メソッドをトリガーしたい....しかし、それは勝ちました発砲しないでください。理由はありますか?

4

1 に答える 1

1

View2#contentあなたのコードにレンダリングし、それによると、ビュー#contentの要素 ( ) ではありません。プロパティはビュー内で発生するイベントを待機するため、el機能しません。eventsel

試す

// View 1
start: function () {
    var StartView = new View2({model: this.model, el: $('#content')});
}

...

// View 2
render: function () {
    this.$el.html(this.template(this.model.toJSON()));
    return this;
}
于 2013-09-09T00:22:34.683 に答える