コントローラからフィクスチャ内のレコードの総数を取得したいと思います。ここに私のフィクスチャコードがあります:
備品
App.Items.FIXTURES = [
{
id: 1
},
{
id: 2
},
{
id: 3,
}
];
この場合、フィクスチャには合計 3 つのレコードがあります。コントローラーでその合計を取得するにはどうすればよいですか?
コントローラからフィクスチャ内のレコードの総数を取得したいと思います。ここに私のフィクスチャコードがあります:
備品
App.Items.FIXTURES = [
{
id: 1
},
{
id: 2
},
{
id: 3,
}
];
この場合、フィクスチャには合計 3 つのレコードがあります。コントローラーでその合計を取得するにはどうすればよいですか?
次のようなものを使用している場合:
App.ItemsRoute = Ember.Route.extend({
model: function() {
return this.store.find('items');
}
});
はEmber.PromiseProxyMixinstore.find
インスタンスを返すため、プロパティを観察して、データがいつ読み込まれたかを知ることができます。isFulfilled
App.ItemsController = Ember.ArrayController.extend({
doSomethingWithTotal: function() {
var length = this.get('model.length');
// do something with de length
}.observes('model.isFulfilled')
});
このサンプルのようにhttp://jsfiddle.net/marciojunior/UeCWV/
ArrayController にプロパティcontent
を要求すると、 にアクセスできる配列が返されますlength
。
更新された Fiddle は次のとおりです: http://jsfiddle.net/bYSjD/
App.ItemsController = Ember.ArrayController.extend({
doSomethingWithTotal: function() {
return this.get('content.length')
}.property('content')
});
これが機能する方法は、App.ItemsRoute
. model
アイテムを見つけるための Promise を返し、それが完了すると、 の別のメソッドItemsRoute
が呼び出されます: setupController
.
Ember は自動的に処理setupController
を行い、返されたモデル データをコントローラーに入力します。のcontent
プロパティが設定され、プロパティに実際の値ItemsController
が与えられます。doSomethingWithTotal