Ember Dataによって返されるは、RecordArray
実際には変更を目的としたものではありません。特に、Model.find()
(sans-argument)およびModel.all()
returnライブ配列は、新しい一致レコードが利用可能になると更新を続けます。
モデルの配列を操作する場合は、Model.find({})
(引数によって使用されるようにfindQuery()
)を使用してプロパティを監視することをお勧めしisLoaded
ます。このようなもの:
query: null,
init: function() {
// should really do this in the route
this.set('query', Model.find({}));
},
content: function() {
var query = this.get('query');
return query && query.get('isLoaded') ? query.toArray() : [];
}.property('query.isLoaded')
これで、コンテンツは単純な古い配列を返し、それを使用することができます(ただし、配列の変更を開始する前に、レコードがロードされるのを待つ必要があります)。
クエリを更新し続けることが問題である場合は、の使用を検討してくださいModel.filter()
。これは、のようなライブ配列を返しますfind()
が、一致する関数を受け入れます。紛らわしいが、かなり意図的に、、、およびのいずれにもプロパティがないことに注意find()
しall()
てfilter()
くださいisLoaded
。
ページネーションに関しては、単純なミックスインアプローチ、またはより複雑なレールベースのソリューションを試すことができます。