Wirklich neu zu ember und versuchen, grundlegende (in meinen Gedanken) Routen einzurichten.EmberJS 2 Route dynamisches Segment in nicht verschachtelten Routen undefined
Ich habe calendars
Ressource und ich möchte einzelne Kalender anzeigen.
Mein app/router.js
hat folgendes:
this.route('calendar', {path: 'calendars/:calendar_id'}, function() {
this.route('show');
this.route('edit');
});
this.route('calendars', function(){
this.route('create');
});
Ordner sind wie folgt:
app/routes: [
calendars: [create, index],
calendar: [edit, show]
]
app/templates: [
calendars: [create, index]
calendar: [edit, show]
]
In app/routes/calendar/show.js
:
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return this.store.findRecord('calendar', params.calendar_id);
}
});
Die Probleme beginnen, wenn ich gehe zu http://SERVER/calendars/5/show (5 a : kalender_id teil, SERVER ist was hosts ember app):
- , wenn ich log params - sie sind nicht definiert
- In dev Werkzeuge, die ich sehe, dass Ember irgendwie eine POST-Anforderung als http://SERVER/calendars/5 zu meinem Server macht (a : calendar_id Teil ist SERVER auf derselben Domain und wo mein Backend liegt).
- Dies geschieht unabhängig davon, ob ich
model()
Funktion inapp/routes/calendar/show.js
Datei auskommentieren. - Anscheinend Ember weiß, was calendar_id für diese Anfrage zu verwenden.
Aber ich weiß nicht, wo das Aufruf an den Server passiert:
- Wenn ich
model(){}
ganz auf Kommentar, meine Vorlage Modell Rekord macht (den Kalender Datensatz, den Ember holt). - Wenn ich auf der anderen Seite versuchen params in
model()
loggt und ich kommentieren Siethis.store.findRecord
Teil aus, die params sind nicht definiert und es löst einen Fehler.
- Wenn ich
Ich dachte zuerst, dass es mein DS.RESTAdapter ist, da ich update Änderungen zu fälschen PUT-Anforderung definiert habe (mein Server erlaubt nicht, dass), aber ich aus der gesamten Datei kommentiert und es immer noch diese Abfrage .
- Ich habe gereinigt beide dist/, tmp/, auf 2.9.0 aktualisiert haben, aber es hat die gleiche Sache.
- Ich habe keine Controller
definiert Wie Ember POST-Anforderung machen, wenn Modell() Haken aus Route fehlt, ich habe keine difined Controller. Wie repariere ich es auch, damit es funktioniert?; P
bearbeiten [2]:
ich das jetzt bin versucht, und ich denke, es irgendwie funktioniert, aber sieht hässlich aus:
this.route('calendars',{ path: '/calendars'}, function(){
this.route('create');
});
this.route('calendar', { path: '/' }, function() {
this.route('show', { path: '/calendars/:calendar_id/show' });
this.route('edit', { path: '/calendars/:calendar_id/edit' });
});
this.route('index', { path: ''});
ich sehe. Ich habe aber schon 'app/models/calendar.js' definiert. Ich habe jedoch keinen Controller definiert. Wenn Sie dieses Setup versuchen, suchen Sie nach der Konfiguration von "/ calendar /: calendar_id /: calendar_id/show". Das Entfernen von '/: calendar_id' bringt mich zum selben Problem zurück. – GogromaT
Um es zu verdeutlichen erzeugt die Modellfunktion in der Route NICHT das Modell selbst –
Ich bearbeitet das Beispiel, um den Pfad von der übergeordneten Route zu entfernen, so dass sie jetzt nur in den verschachtelten Routen sind –