页面加载从用户查看用户个人资料时开始。然后他做了一些动作,我的代码会调用 ajax 来更新它的用户类型——
App.UserController = Ember.ObjectController.extend
convert: ->
$.get '/api/user/convert_to_client/' + id, (response) ->
self.set('user_type', response.user.user_type)
但是每当我访问用户列表时,Ember 会尝试从 UsersRoute 中获取所有用户:
module.exports = App.UsersRoute = Em.Route.extend
model: ->
App.User.find({}).then (response) ->
self.controllerFor('users').set('content', response)
然后我最终得到类似于这些的所有错误:
错误尝试处理事件`loadedData`:deleteRecord 后对象未更新
我认为这篇文章在这里解释了这个问题 -
http://www.thomasboyt.com/2013/05/01/why-ember-data-breaks.html
未捕获的错误:尝试
loadedData
在 rootState.loaded.updated.uncommitted 状态下处理事件。用 {} 调用这意味着您正在尝试对记录执行在当前状态下无法执行的操作。当尝试更新当前正在保存的记录或尝试在已删除的对象上呈现属性时,通常会发生这种情况。
但请注意,当它反过来时,我先去用户列表表,然后去查看用户的个人资料,更新用户 - 这个错误永远不会出现。
编辑:
来自用户的示例响应:
{
users: [
{
_id: 521e1112e8c5e10fb40002a0
..
}
]
}
对于单个用户:
{
user: {
_id: 521e1116e8c5e10fb40004ca
}
}