C'è un modo per estendere l'opzione data
quando si utilizza IronRouter e il RouteController
, Sembra che viene ignorato quando ho ereditato da un controllore super, il controller bambino non si estende il definito data
proprietà. Ho avuto problemi la classica con l'opzione yieldTemplates
su un percorso e utilizzato una soluzione alternativa (sottolineatura _extends), ma non ha funzionato in questo caso:IronRouter sul controller percorso
ApplicationController = RouteController.extend({
data: function(){
return {
user: Meteor.user()
}
}
});
ChildController = ApplicationController.extend({
data: function(){
return {
// I expect to inherit Meteor.User ?????
someData: {}
}
}
});
EDIT:
Dopo aver utilizzato underscore
e la funzione extend
di ereditare il prototipo di funzione, sono ancora in grado di ereditare in di route
definizione che usa la 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'})
});
});
Puoi spiegare perché vuoi fare questo e quello che stai cercando di realizzare? Forse c'è un altro modo? –
È necessario anche richiamare il controllore (super) genitore dai dati di child(). – LSerni