在Marionette.js中调用父视图的功能

时间:2014-06-04 01:06:05

标签: javascript backbone.js marionette

在Marionette中,如何在不覆盖原始函数的情况下在视图的父对象上调用同名函数?

例如:

var someView = new Backbone.Marionette.ItemView.extend({
    onRender: function () {
        console.log('foo');
    }
});

var anotherView = someView.extend({
    onRender: function () {

        // call someView's original onRender function

        console.log('bar');
    }
});

anotherView.render();

导致控制台输出:

foo
bar

1 个答案:

答案 0 :(得分:6)

您可以使用__super__设置的var anotherView = someView.extend({ onRender: function () { this.__super__.onRender.call(this); console.log('bar'); } });

var anotherView = someView.extend({
    onRender: function () {
        someView.prototype.onRender.call(this);
        console.log('bar');
    }
});

或直接引用您要在实例上应用的方法:

{{1}}

有关详细信息,请参阅extendJavascript Class Inheritance For Functions