我在我的应用程序中使用了一个 ArrayController,它是通过应用程序的路由器从 Ember Data REST 调用提供的:
postsController.connectOutlet('comment', App.Comment.find({post_id: post_id}));
对于 Post UI,我可以添加/删除评论。当我这样做时,我希望能够通过删除或添加相同的元素来更新 postsController 的 contentArray 以向用户提供视觉反馈,但 Ember Data 并不好玩:
Uncaught Error: The result of a server query (on App.Comment) is immutable.
根据下面sly7_7的评论,我刚刚注意到没有查询(App.Comment.find())时结果确实是DS.RecordArray,但是在有查询的情况下(App.Comment.find({post_id: post_id}),返回一个 DS.AdapterPopulatedRecordArray。
我是否必须 .observes('contentArray') 并创建一个可变副本?或者有没有更好的方法来做到这一点?