ember-data отношение многие ко многим deleteRecord не работает

Используя 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 запускается красиво, поэтому переход происходит... Когда удаляется запись, например, плеер:

  • Любое лобби, в котором этот игрок является владельцем, удалит игрока из списка владельцев. (такие успешные отношения один ко многим)
  • Любое лобби, в котором этот игрок является просто участником, все равно будет показывать игрока, но со всеми очищенными свойствами (имя пользователя пустое,..). (так провалились отношения многие ко многим)

То же самое происходит при удалении лобби, поэтому, если лобби удаляется:

  • Любой игрок, который является владельцем этого лобби, удалит это лобби под своим списком "принадлежащих лобби" (настолько успешных отношений один ко многим)
  • Любой игрок, который является участником этого лобби, по-прежнему будет иметь это лобби под "joinLobbies", но со всеми свойствами, установленными как очищенные (пустое название, ..) (так что не удалось установить связь между многими и многими)

При попытке удалить эту пустую запись я получаю следующую ошибку:

Попытка обработать событие deleteRecord находясь в состоянии rootState.loading. Вызывается с неопределенным

Я не могу найти никакого решения этой проблемы в Интернете. Многие упоминают тот факт, что ember-data все еще прослушивается, но это похоже на обычное использование хранилища ember. Я что-то упустил?

Заранее спасибо.

(Редактирование плеера или лобби корректно обновляет объект везде. Так что это появляется только при удалении записи.)

0 ответов

Другие вопросы по тегам