编辑:更一般地说,我怎样才能调用 find() 并让它对结果集中的每个项目做一些事情
如何在不破坏绑定的情况下更新集合关系的成员?例如,一个模型有很多东西,但最初只加载前 10 个,然后我想用接下来的 10 个替换那些,等等,以进行分页
我可以调用 clear 并添加底层的 OrderedSet,但这会破坏我页面上的绑定,一切都消失了。
App.Category = DS.Model.extend({
name: DS.attr('string'),
type: DS.attr("string"),
parent: DS.belongsTo('App.Category'),
children: DS.hasMany('App.Category'),
stories: DS.hasMany('App.Story'),
});
App.CategoryController = Ember.ObjectController.extend({
page: 1,
loadPage: function() {
console.log(this.get('stories'))
var s = App.Story.find({sid: this.get('id'), count: 12, page: this.get('page')})
this.get('stories').clear()
for (var i = 0, len = this.length; i < len; ++i) {
this.get('stories').add(s[i])
}
},
nextPage: function(event) {
this.set('page', this.get('page') + 1)
this.loadPage()
},
prevPage: function(events) {
this.set('page', this.get('page') - 1)
this.loadPage()
},
breadcrumb: function() {
return ""
}.property('parent'),
sortProperties: ['created'],
sortAscending: false,
nextEnabled: function() {
return true
}.property('page'),
prevEnabled: function() {
if (this.get('page') > 1) {
return true
}
return false
}.property('page'),
});