Ich versuche einen Datensatz im Ember-Speicher zu aktualisieren. Wenn ich versuche, dies zu tun, gibt es den folgenden Fehler:Der Inhalt ist nicht definiert, wenn ich versuche, mit einem Datensatz in Ember zu arbeiten.
Uncaught Error: Assertion Failed: Cannot delegate set('name', test) to the 'content' property of object proxy : its 'content' is undefined.
Der Controller sieht wie folgt aus:
import Ember from 'ember';
export default Ember.Controller.extend({
model: null,
event: {
name: "test",
id: "adfg8943224xcvsdf"
},
actions: {
editEvent (event) {
var Event = this.store.find('event', event.id);
Event.set('name', event.name);
Event.save()
}
}
});
Die Route sieht wie folgt aus:
import Ember from 'ember';
export default Ember.Route.extend(AuthenticatedRouteMixin, {
model() {
return {
event: this.store.find('event')
}
},
setupController (controller, model) {
controller.set('model', model);
}
});
Die Vorlage löst die Aktion, Senden eines Objekts namens Ereignis, das Eigenschaften wie Name und ID hat. Die Werte des Ereignisobjekts von der Steuerung kommen und gesetzt wurden die editEvent Aktion vor dem Auslösen:
<form {{action 'editEvent' event on="submit"}}>
Nicht 'find' ein Versprechen zurückzukehren? Bitte zeigen Sie uns auch den Template-Code, insbesondere den Teil, wo Sie die 'editEvent'-Aktion aufrufen - was genau ist' event'? –
Find gibt eine Klasse mit einer Inhaltsklasse zurück. Event ist ein Objekt mit Eigenschaften wie Name und ID. –
Wollten Sie einen POJO aus dem Modell-Hook zurückgeben? Normalerweise würden Sie ein Versprechen abgeben. Warum wickelst du die 'store.find' in ein solches Objekt? Versuchen Sie, mehrere Modelle zu laden? – Sarus