6

BackboneJS でサブビューからビュー関数を呼び出せるかどうか知りたいです。はいの場合、どのように機能していますか?

メインビューに属する関数「hello」をサブビューから呼び出したい。

たぶん、イベントトリガーの場合...

例:

var MainView = Backbone.View.extend({

    initialize: function() {
        this.$template = $(template);
        this.subview = new SubView();               
        this.render();              
    },

    render: function() {
        this.$el.html(this.$template);
        var element = this.$template.attr('id');
        this.subview.setElement('#'+element).render();
    },

    hello: function() {
        alert('Hello');
    }

});


var SubView = Backbone.View.extend({

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

    render: function() {
        this.$el.html(this.$template);
        //Call view function ' hello '
        //parentView.hello();
    }

});

ありがとう!

4

2 に答える 2

2

次のように拡張してみることができますMainView

var SubView = MainView.extend({ });

helloこれにより、内の関数への参照が得られるはずですMainView

または、 で、これを関数SubViewに追加します。render

MainView.prototype.hello.call(this) 

これは、インスタンスのコンテキスト (テンプレート、他の変数など) を使用してhello関数を呼び出します。MainViewSubView

于 2013-05-08T03:15:21.597 に答える