Data la seguente applicazione Ember.js (utilizzando Ember 1.0.0.rc.6.1 e Ember dati 0,13):Perché le risorse nidificate in Ember.js non conservano l'hash dei parametri?
App = Ember.Application.create({ LOG_TRANSITIONS: true });
App.Store = DS.Store.extend();
App.Router.map(function() {
this.resource('promotions', function() {
this.resource('promotion', { path: '/:promotion_id' }, function() {
this.resource('entrants', function() {
this.resource('entrant', { path: '/:entrant_id' });
});
});
});
});
App.PromotionRoute = Ember.Route.extend({
model: function() {
return { id: 1, name: 'My Promotion' };
}
});
App.EntrantsIndexRoute = Ember.Route.extend({
model: function(params) {
console.warn('EntrantsIndexRoute', '\nparams:', params, '\nparams.promotion_id:', params.promotion_id, '\narguments:', arguments);
console.log('params should be:', { promotion_id: 1 });
console.log('The queried URL should be:', '/entrants?promotion_id=1');
return App.Entrant.find({promotion_id: params.promotion_id});
}
});
App.Entrant = DS.Model.extend({
name: DS.attr('string')
});
Se si inserisce l'url #/promotions/1/entrants
, che dovrebbe essere una risorsa nidificato, i params è un oggetto vuoto. Come posso accedere a promotion_id
lì? JSFiddle qui, dai un'occhiata alla console dopo aver cliccato su "Click me": http://jsfiddle.net/Kerrick/4GufZ/
È da qualche parte nelle guide di Brace? Non riuscivo a trovarlo da nessuna parte ... – claptimes
Questa risposta sembra dare una soluzione, ma non risponde alla domanda di fondo del perché la risorsa nidificata non ha accesso ai parametri – Hortitude
Questa risposta è rilevante solo se sei seguendo un caso d'uso simile. se il tuo modello non è così semplice come questo esempio, non risponde ancora alla domanda su come ottenere parametri da una rotta nidificata. – cspray