我有以下控制器:訂閱一個DS.Model事件控制器
export default Controller.extend({
/* model is an array of Posts */
didDeletePost(post) {
/* PROBLEM HERE : post is an InternalModel */
this.get('model').removeObject(post);
/* do other stuff with post */
},
actions: {
markPostForDelete(post) {
post.markForDelete(); /* starts a timer */
post.one('didDelete', this, this.didDeletePost);
},
clearMarkPostForDelete(post) {
post.clearMarkForDelete(); /* cancel a timer which will destroyRecord */
post.off('didDelete', this, this.didDeletePost);
}
}
});
但是從model
在didDeletePost
刪除post
不起作用,因爲post
參數是InternalModel
,而不是DS.Model
。
我該如何做到這一點?
由於這樣做似乎並不容易,我猜應該有更好的方法來實現這種計時器嗎?
謝謝,但這只是因爲你找到了所有的帖子,這是有點特定的。作爲一個例子,它不適用於'query'。 – louiscoquio
@louiscoquio我更新了我的小提琴。它也適用於查詢' –
你是對的,對不起!它在我的情況下不起作用:我在路由模型中調用'#toArray'來稍後從控制器添加一些帖子。另外,我還需要在'didDeletePost'回調函數中使用'post'做一些其他的事情。 – louiscoquio