使用ember-data,我尝试删除多对多关系中的记录。
我有一个玩家和游说对象。大堂有1名业主和许多球员。玩家可以是许多游说团体的所有者和许多游说团体的成员。
我的模特:
App.Lobby = DS.Model.extend({
title : DS.attr("string"),
owner : DS.belongsTo("App.Player", {
inverse : "ownedLobbies"
}),
players : DS.hasMany("App.Player", {
inverse : "joinedLobbies"
})
});
App.Player = DS.Model.extend({
username : DS.attr("string"),
ownedLobbies : DS.hasMany("App.Lobby", {
inverse : "owner"
}),
joinedLobbies : DS.hasMany("App.Lobby", {
inverse : "players"
})
});
在我的LobbyController和PlayerController中,我这样做:
Ember.ObjectController.extend({
doDelete : function (model) {
model.deleteRecord();
model.one("didDelete", this, function () {
this.transitionToRoute("index");
});
model.get("transaction").commit();
}
});
didDelete很好地触发,所以过渡确实发生了.. 当记录被删除时,例如播放器:
删除大厅时也是如此,因此,如果大厅被删除:
尝试删除该空白记录时,出现以下错误:
尝试处理事件
调用deleteRecord
而在状态rootState.loading中。用未定义的
我在互联网上找不到任何解决方案。许多人提到ember-data仍然存在错误的事实,但这看起来像是ember商店的常见用法。我忽视了什么吗?
先谢谢。
(编辑播放器或大厅会在任何地方正确更新对象。因此,只有在删除记录时才会显示。)