Ho un'app che al momento contiene una vista di oggetti dello stesso modello. Essi vengono recuperati dal server, collegato attraverso e aggiunti al controller elenco utilizzando un metodo addember.js - qual è il modello di controllo/visualizzazione corretto per la creazione di un nuovo modello
<script>
App.Controllers.List = Em.ArrayProxy.create({
content: Ember.A([]),
add: function(obj){
this.pushObject(obj);
}
});
</script>
Ora sto lavorando su una parte in cui l'utente crea un nuovo oggetto che (dopo aver superato la convalida) sarà aggiunto l'elenco e anche inviato al server.
Non riesco a trovare alcun esempio sui migliori schemi da seguire per creare un nuovo oggetto tramite un modulo di input. Riesco a vedere alcune opzioni e ne ho parzialmente implementate alcune, ma non mi sembra giusto.
- creare una vista con opportuni elementi di modulo e un metodo per istanziare il modello utilizzando varie proprietà recuperate dagli elementi modulo utilizzando .get()
- creare un modello di contenuto e forma legano elementi della vista di questo. Includere un metodo sulla vista per l'aggiunta alla matrice di controllo/salvataggio al server
- Creare un modello, aggiungerlo alla array controller e aprirlo per la modifica
posso tipo di lotta la funzionalità I voglio, ma preferirei assicurarmi di essere a conoscenza delle migliori pratiche.
Al momento ho qualcosa di simile (che è il secondo punto sulla mia lista)
<script>
App.Views.ItemCreate = Em.View.extend({
content: App.Models.Item.create({}),
templateName: 'create',
createButton: function(){
var itemObj = this.get('content');
var item = {};
item.title = this.get('content').get('title');
$.ajax({
type: 'POST',
url: '/test/data.json',
data: item,
dataType: 'json',
success: function(responseData, textStatus, jqXHR) {
App.Controllers.List.add(itemObj);
}
});
}
});
</script>
<script type="text/x-handlebars" data-template-name="create">
{{view Em.TextField id="create-title" valueBinding="content.title"}}
<a href="#" {{action "createButton" }}>Create</a>
</script>
Qualsiasi aiuto molto apprezzato
NOTE
ho cambiato la risposta corretta a Pangratz di. Sebbene le altre risposte rispondessero direttamente alla mia domanda, credo che chi trova questo tramite Google dovrebbe fare riferimento alla risposta Pangratz fornita non solo è buona MVC, ma è più Ember-y: o)
Grazie anche a questo. Ho notato che ho iniziato a riscrivere i dati di ember un po 'quando ho implementato la sorgente di dati, l'ho già usato in un contesto leggermente diverso e ho avuto un comportamento non corretto, lo farò un altro tentativo, penso! – joevallender
Inoltre, appena notato per chiunque altro si imbatta in questo: nella funzione di creazione di dati source source, se viene applicato si dovrebbe essere callback.apply (destinazione, [dati]) o callback.call (destinazione, dati) e si probabilmente stai usando un self/_questo/che hai passato nella funzione ajax invece dei dati grezzi restituiti – joevallender