Czy istnieje sposób przedłużenia opcji data
podczas korzystania z aplikacji IronRouter i RouteController
. Wydaje się, że zostanie ona zastąpiona, gdy dziedziczę z kontrolera nadrzędnego, kontroler podrzędny nie rozszerza zdefiniowanego data
nieruchomości. Miałem problemy podobne z opcją yieldTemplates
na trasie i używane obejście (podkreślenie _extends), ale to nie działa w tym przypadku:Opcja przedłużenia danych IronRouter na kontrolerze trasy
ApplicationController = RouteController.extend({
data: function(){
return {
user: Meteor.user()
}
}
});
ChildController = ApplicationController.extend({
data: function(){
return {
// I expect to inherit Meteor.User ?????
someData: {}
}
}
});
EDIT:
Po użyciu underscore
i funkcję extend
dziedziczyć funkcję prototypu, wciąż jestem w stanie odziedziczyć w route
definicja, że używać ChildController
this.route('someRoute', {
template: 'task_template',
//tasks is not available on the template
data: function() {
var base = ChildController.data.call(this);
console.log(base);
return _.extend(base, {
tasks: Tasks.find({state: 'Open'})
});
});
Czy możesz wyjaśnić, dlaczego chcesz to zrobić i co chcesz osiągnąć? Może jest inny sposób? –
Należy również wywołać kontroler nadrzędny (super) z danych dziecka(). – LSerni