Chame a função de uma visualização pai em Marionette.js
-
21-12-2019 - |
Pergunta
No Marionette, como posso chamar uma função de mesmo nome no objeto pai de uma visualização sem substituir a função original?
Por exemplo:
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();
Resultando na saída do console:
foo
bar
Solução
Você pode usar __super__
, que é configurado por extend
:
var anotherView = someView.extend({
onRender: function () {
this.__super__.onRender.call(this);
console.log('bar');
}
});
ou apenas faça referência direta ao método que você deseja aplicar em sua instância:
var anotherView = someView.extend({
onRender: function () {
someView.prototype.onRender.call(this);
console.log('bar');
}
});
Para mais informações, veja Herança de classe Javascript para funções e o que .call()
faz.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow