Domanda

Ho lavorato su una domanda EmberJS per circa una settimana, e ho scritto il mio adattatore localStorage per EmberJS / dati per consentire la persistenza dei dati. L'applicazione è una piccola applicazione per prendere appunti. Idealmente, mi piacerebbe avere un modello di notebook che ha molti modelli nota associata con esso.

Tuttavia, non ho trovato un modo per fare questo che si traduce in una matrice mutevole. Mentre è possibile "attuare" una relazione hasMany ...

Noted.Note = DS.Model.extend({
  title: DS.attr('string'),
  note_text: DS.attr('string'),
});

Noted.Notebook = DS.Model.extend({
  title: DS.attr("string"),
  notes: DS.hasMany(Noted.Note)
});

... il ModelArray creato dal metodo hasMany è immutabile in EmberJS. Sembra che questo è attualmente in lavorazione - c'è un ramo "associazioni" di EmberJS / Dati qui - ma la modifica del ModelArray è fondamentale per questa applicazione, ad esempio creare una nuova nota:

var notebook = Noted.store.createResource(Noted.Notebook, {
  title: "Foo Notebook"
});
notebook.get("notes").pushObject(Noted.store.createResource(Noted.Note, {
  title: "Bar Note",
  note_text: "Blah blah blah."
}));
notebook.get("notes").objectAt(0).get("title") //returns undefined

Anche se la più recente commit di EmberJS / dati non comprendono serie mutevolezza, manca ancora qualsiasi tipo di osservazione -. L'adattatore non viene notificato quando vengono apportate modifiche, e non vengono salvati

mi chiedo: qual è la migliore alternativa ad un'associazione hasMany fino a quando si aggiunge questa capacità di EmberJS / dati? Ho cercato in diversi modelli, come quello di avere una matrice di ID di nota nel modello di notebook con una sorta di prendere / recuperare l'interfaccia di andare con lui, ma ho ottenuto assolutamente nulla. Ho passato abbastanza un buon pezzo di oggi cercando di capire il modo migliore per fare questo, e tutto quello che ho è un sacco di frustrazione.

È stato utile?

Soluzione

Ember-dati saranno arrivare alla fine. Fino ad allora, attualmente appena Mutate matrice e manualmente invito tutti i corrispondenti metodi negozio per riflettere la mutazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top