Ich bin neu zu Ember und baue eine sehr einfache App. Ich kann von meiner Züchter-Index-Seite (/ Züchter) zu meiner Züchter-Show-Seite (/ Züchter /: Züchter-ID) navigieren, indem ich auf den Link klicke, der vom Link-zu-Tag erzeugt wird. Allerdings, wenn ich den Züchtern/1 oder einem der anderen breeders.show Routen ich folgende Fehlermeldung manuell navigieren erhalten:Ember "Params ist nicht definiert" in Routing
Error while loading route: ReferenceError: params is not defined
at Catapp.BreedersShowRoute.Ember.Route.extend.model
Ich kann nicht herausfinden, was ich getan habe, dass dies verursacht.
Dies ist, was ich denke, ist der entsprechende Code:
//router.js
Catapp.Router.map(function() {
this.resource('breeders', function() {
this.route('new');
this.route('show', {path: '/:breeder_id'});
});
});
Catapp.IndexRoute = Ember.Route.extend({
redirect: function(){
this.transitionTo('breeders.index');
}
});
Catapp.BreedersIndexRoute = Ember.Route.extend({
model: function(){
return this.store.find('breeder');
}
});
Catapp.BreedersShowRoute = Ember.Route.extend({
model: function(){
return this.store.find('breeder', params.breeder_id);
}
});
.
// breeders_controller.js
Catapp.BreedersController = Ember.ArrayController.extend({
sortProperties: ['id']
});
Für diejenigen, die hierher kamen und realisiert diese funktioniert nicht für sie, es ist wahrscheinlich, weil Sie nicht in der "Index" Route für dieses Modell sind: der einzige Ort, "Params" funktioniert. Ich habe stattdessen [diese Lösung] (http://stackoverflow.com/a/20503866/1450226) verwendet. –
Ich würde gerne zusätzliche Informationen zu der Antwort hinzufügen, aber ich bin mir nicht sicher, ob ich verstehe, was Sie meinen. Die Parameter werden basierend auf der Position des ': foo 'im Router bevölkert. – Kingpin2k
Wenn Sie auf der URL '/: foo' params sind, enthält Daten. Aber sobald Sie irgendwo verschachtelt sind, enthält '/: foo/edit' params nichts. Ich musste auf die ': foo' ID von einer verschachtelten Route zugreifen. –