非常に新しいember申し訳ありません、私はemberでカスタムアダプタとシリアライザを作成しようとしていましたが、DS.RESTadapterとRestシリアライザを拡張して、モデルのニーズに合わせてデータをマッサージしますが、モデルプロパティを使用してテンプレート内のモデル値を取得することはできませんでしたが、値を取得する方法がありました。Ember Data非標準的なコールのためのEmberデータ
モデル
App.Weather = DS.Model.extend({
name : DS.attr('string'),
temperature : DS.attr('string'),
humidity : DS.attr('string'),
description : DS.attr('string'),
});
アダプタ私はmodel.Contentアレイの下のすべての値を取得しています上記のよう
App.ApplicationAdapter = DS.RESTAdapter.extend({
buildURL: function(item) {
return "http://website/weather?q=" + item['q']+ "&appid="+item['appid'];
},
findQuery: function(store, type, query) {
return this.ajax(this.buildURL(query), 'GET');
}
});
シリアライザ
App.ApplicationSerializer = DS.RESTSerializer.extend({
extractArray: function(store, type, payload) {
var weathers = [{
id: 1 // Id hard coded
}];
weathers[0]["name"]=payload["name"];
weathers[0]["temperature"]=payload["main"]["temp"];
weathers[0]["humidity"]=payload["main"]["humidity"];
weathers[0]["description"]=payload["weather"][0]["description"];
weathers[0]["type"]=payload["weather"][0]["main"];
payload = { weathers: weathers };
return this._super(store, type, payload);
}
});
ルート
App.WeatherIndexRoute = Ember.Route.extend({
model: function(params) {
//debugger;
return this.store.find('weather',{q:"London", `enter code here`appid:"b552aef423b1cf586b62d1ab1d4ef216"});
},
renderTemplate: function() {
this.render('default');
},
setupController: function(controller, model) {
**controller.set('model', model.content[0]);**
}
})
。
わからないyモデルの代わりにmodel.contentを実行する必要があります。なぜそれがこのように自分自身を巣立たせるのでしょうか?
私はあなたがドキュメントを見つけることができないため、バージョンを使用していない、燃えさし 燃えさし-1.1.2.js
setupControllerフックでmodelプロパティを設定する必要はありません。これは親コントローラによって自動的に設定されるためです。 this._super(.. arguments)を呼び出す必要があることを確認してください。 – kumkanillam
入れ子になったアダプタの詳細については、Slides(http://www.slideshare.net/RyanMHarrison/nest-v-flat-with-emberdata)および/またはVideo( https://www.youtube.com/watch?v=DjAMSjFPLW8) – rmharrison