Sto cercando di fare qualcosa di semplice con Ember e Ember Data.Dati di origine appartiene a Seleziona con menu a discesa
1) Messaggi appartiene agli utenti; Gli utenti hasMany Messaggi
2) Nel nuovo modulo di creare post, voglio avere un selezionato/a discesa di tutti gli utenti
3) Quando posso modificare un post (utilizzando lo stesso modulo), voglio legarlo correttamente torna al dropbox
Domanda: Qual è la procedura migliore per eseguire il menu a discesa che si collega all'elenco degli utenti? Come posso associare il modulo di modifica per popolare di nuovo il menu a discesa?
utente Modello:
App.User = DS.Model.extend({
posts: DS.hasMany('post', {async: true}),
});
Messaggio Modello:
App.Post = DS.Model.extend(Ember.Validations.Mixin, {
user: DS.belongsTo('user', {async: true}),
});
Crea nuovo modulo per l'inserimento:
{{view Em.Select
content=users <<<<< How do I bind this.store.find("user") here?
optionValuePath='content.id'
optionLabelPath='content.name'
}}
non lo faccio und Descrivere la best practice per associare il contenuto selezionato agli utenti.
Tentativo 1:
* Sto usando Ember-Form
{{em-select
property="user_id"
label="user"
prompt="Select user:"
content=controllers.users.content
optionValuePath="content.id"
optionLabelPath="content.first_name"
}}
E sull'azione salvare:
newItem.set('user', this.store.getById('user', this.get('user_id')));
Ho cercato di usare id_utente come mia proprietà per la forma, e tradurre di nuovo a un oggetto utente da assegnare al post quando salvi. Tuttavia, questo metodo è un po 'stupido perché sto traducendo attivamente user_id in oggetto utente ogni volta che salvo. Sento che dovrebbe esserci un modo per farlo automaticamente se eseguo il binding corretto, invece di saltare attraverso i cerchi per legare la proprietà come user_id. Ciò rende inoltre difficile il reindirizzamento quando utilizzo lo stesso modulo per la modifica del post. Poiché tutta la relazione è stata impostata, ho la sensazione che sto facendo qualcosa di sbagliato qui. Penso che ci debba essere un modo migliore.
Grazie!
Grazie per la risposta. Il mio problema non è tanto il modo in cui utilizzare la vista selezionata. Sto già usando la selezione di forma di brace. Il mio problema è cercare di associare l'archivio utenti alla selezione stessa. L'esempio di Ember mostra come associare i dati statici, ma non i dati dall'archivio dati. Ho aggiornato la domanda per renderla più chiara ora. Grazie! –
Di solito lo imposti nella tua rotta usando i metodi 'model' e/o' setupController' e l'aggiornamento dei binding automaticamente. Se la tua selezione/contenuto è una promessa che puoi associare al tuo 'Em.Select' usando la proprietà' content' (ad esempio 'selection = users' diventa' selection = users.content'). –
Non posso associare la proprietà 'users' direttamente a Select. Ember si lamenta di 'Uncaught Error: Assertion Failed: è possibile aggiungere un record 'user' a questa relazione', motivo per cui mi lego a un id_utente, quindi lo aggiungo al modello quando si salva' newItem.set ('utente', questo .store.getById ('utente', this.get ('user_id'))); '. Ancora una volta penso che questo metodo sia troppo problematico e penso che ci debba essere un metodo diretto e facilmente vincolante che mi manca. –