I Ember.RSVP.hash bin mit mehreren Modellen in einem Ember Controller zuzugreifen:Wie Sie sich richtig Daten Ember Modell von Steuerung zugreifen
export default Ember.Route.extend({
model() {
return Ember.RSVP.hash({
categories: this.store.findAll('category')
languages: this.store.findAll('language'),
requirementTypes: this.store.findAll('requirement-type')
});
},
setupController: function(controller, models) {
controller.set('categories', models.categories);
controller.set('languages', models.languages);
controller.set('requirementTypes', models.requirementTypes);
}
});
ich unerbittlich gegoogelt haben, wie diese Modelldaten richtig in meinem Controller zugreifen . Der einzige Weg, den ich bisher gefunden habe, fühlt sich viel zu hackig an. Ich möchte nur Zugriff auf die unverarbeiteten HTTP-Antwortdaten haben, die von meiner API zurückgegeben werden.
Allerdings, wenn ich this.get (‚Kategorien‘) schreiben, das, was ich bekommen ist wieder ziemlich hässlich und ist eine viel komplexere Aufgabe als das, was mein api zurückgegeben:
Die " InternalModel“Einträge enthalten die eigentlichen Daten in dem _data Attribute, das von meinem api zurückgegeben wurde:
gibt es einen besseren, Reco Verbesserte Möglichkeit, auf diese Modelldaten zuzugreifen, die von meiner API zurückgegeben und über die zugehörige Route an die Steuerung weitergegeben werden? Ich hatte erwartet, auf die genauen Daten zugreifen zu können, die meine API mit etwas wie diesem.get ('categories') zurückgab und sofort auf die Modelldaten zugreifen konnte, die meine API gesendet hatte.
Warum möchten Sie auf genaue API-Antwort zugreifen? Können Sie nicht einfach Ihre Modelle definieren, um alle Daten zu haben, die Sie benötigen? Sie werden nicht in der Lage sein, die genaue Antwort mit Ember-Speicher-Methoden zugreifen, müssen Sie regelmäßig Ajax Anfrage verwenden, um dies zu tun. – Igor
Ich benutze Ember Data, um die API-Anfrage zu machen und dann diese Modelldaten an den Controller zu übergeben. Ist die Art und Weise, wie ich es gemacht habe, wirklich der netteste Weg, es zu tun? Wenn es dann ist, bin ich mir nicht sicher, ob ich den Sinn von Ember Data verstehe und lieber manuelle HTTP-Anfragen verwenden würde. – lkgarrison
Sie können alle drei Eigenschaften in einem einzigen Durchgang mit 'controller.setProperties (models)' festlegen –