Tutti gli esempi utilizzano l'origine dati fissa nell'arraycontroller.content, mentre sto utilizzando l'origine dati dinamica generata da un altro servizio Web e restituisce un JSON, non lo farà creare un oggetto che ho dichiarato in Ember, ecco il codice di esempio:Come associare il contenuto a JSON in Ember.js
ET.AppYear = Ember.Object.extend({
text:null,
value:null
});
ET.EmailTypes = Ember.Object.extend();
ET.appYearController = Ember.ArrayController.create({
content: [],
loadYears: function (year) {
if (year != null) {
for (var i = -5; i < 5; i++) {
this.pushObject({ text: year + i, value: year + i });
//.AppYear.create({ text: year + i, value: year + i });
}
}
}
});
ET.selectedAppYearController = Ember.Object.create({
selectedAppYear: '2011',
alertChange: function(){
alert("selected App Year is now " + this.get('selectedAppYear'));
}.observes('selectedAppYear'),
isChanged: function() {
if (this.appYear != null) {
this.set('selection',this.get('content'));
//LoadETByAppYearETTypeID(this.selectedAppYear, ET.selectedEmailTypesController.emailType.email_template_type_id);
}
} .observes('selectedAppYear'),
AppYear: function() {
var ay = ET.appYearController.findProperty('text',this.get('selectedAppYear'));
return ay;
}.property('selectedAppYear')
});
Come si può vedere, che chiamerò ET.appYearController.loadYears
(JSON) in un posto AJAX indietro, che creerà il contenuto utilizzando this.pushObject
, ma questo non è lo schema dell'oggetto ET.AppYear
, mentre chiamo ET.selectedAppYearController.selectedAppYear
, restituisce un oggetto non definito e restituisce realmente un oggetto con lo schema {text:xx,value,xx}
. Ecco perché anche in questo caso lo selectionBinding
non funzionerà.
Quindi qual è la soluzione tipica per questo per importare elementi JSON come oggetto definito e inserire nel contenuto ?!
Ember-dati non è pronto per la produzione – Gambo
Ember dati è ancora in beta , ma viene utilizzato nelle applicazioni di produzione. –