更新:フィドルはEmber-Datarev12でEmberRC2を使用するようになりました
コントローラに追加する必要はありません。コレクションまたは単一のオブジェクトのいずれかからcreate
、コントローラクラスを追加するだけです。extend
Ember.ArrayController
Ember.ObjectController
YIH.PhotosController = Em.ArrayController.extend();
YIH.PhotosPhotoController = Em.ObjectController.extend();
Emberはこれらのコントローラーをインスタンス化し、アプリケーションの存続期間を通じて管理します。
を使用してストアを設定するには、次のFixtureAdapter
ようにします。
YIH.Store = DS.Store.extend({
revision: 12,
adapter: 'DS.FixtureAdapter'
});
コントローラのを設定するcontent
には、次のようにルーティングを介して設定することをお勧めします。
YIH.Router.map(function() {
this.resource('photos', function() {
this.route('photo', { path: ':photo_id' });
});
});
YIH.IndexRoute = Em.Route.extend({
redirect: function() {
this.transitionTo('photos');
}
});
YIH.PhotosRoute = Em.Route.extend({
model: function() {
return YIH.Photo.find();
}
});
YIH.PhotosPhotoRoute = Em.Route.extend({
model: function(params) {
return YIH.Photo.find(params.photo_id);
}
});
コントローラーは、あなたがそれを書かなくても、焼き付けられたmodel
スルーを受け取ります。次のようになります。setupController
Route
SomeRoute = Em.Route.extend({
setupController: function(controller, model) {
controller.set('content', model);
}
});
必要に応じて変更できます。
コードを追加しなかったため、JSON形式が正しいかどうかはわかりません。いずれにせよ、ストア/アダプターがとは異なる主キーを持つように構成しない限り、各JSONオブジェクトにはプロパティがid
必要であり、モデルにはプロパティがないはずです。アプリケーション全体で、IDを直接呼び出す場合もありますが、命名規則を使用する必要がある場合もあります(例:「写真」ルートの動的セグメント)。id
id
このようなモデルの場合:
YIH.Photo = DS.Model.extend({
url: DS.attr('string'),
caption: DS.attr('string')
});
フィクスチャを追加するには、次のようなJSONを提供する必要があります。
YIH.Photo.FIXTURES = [
{ id: 1,
url: 'http://ecx.images-amazon.com/images/I/516cyMC9O7L.jpg',
caption: 'Image 1'
},
{ id: 2,
url: 'http://ecx.images-amazon.com/images/I/51og8BkN8jL._SS250_.jpg',
caption: 'Image 2'
}
];
このサンプルフィドルを確認することをお勧めします:http://jsfiddle.net/schawaska/n3hY6/