1

我很难使用 ember 数据设置 belongsTo 关系。我有一个jsfiddle 示例来演示。我最初的问题是我收到以下错误:

Uncaught Error: <DS.StateManager:ember5035> could not respond to event loadedData in state rootState.loaded.updated.inFlight.

这只发生在我使用 select 更新模型上的 belongsTo 关系时。那是使用 Ember Data 内置的 RestAdapter。在当前示例中,我正在使用 FixtureAdapter 并且似乎无法保留任何更改(如果您查看小提琴并编辑其中一本书的名称,您会看到它恢复为原始名称)?一旦适配器模拟了“服务器响应”,它们似乎就会恢复?有没有办法模拟正确的服务器响应?

另外,我想知道我的问题是否是我如何设置数据存储事务的结果。我在控制器中使用以下方法:

App.EditBookController = Ember.ObjectController.extend({
  enterEditing: function() {
    this.transaction = App.router.get('store').transaction();
    this.transaction.add(this.get('content'));
  },
  updateRecord: function() {
    this.transaction.commit();
    this.transaction = null;
    App.router.transitionTo('books');
  }
});
4

1 回答 1

1

好的,您正在使用非常边缘版本的 ember-data。这很棒,但我也必须让自己更新。在@tchak 的帮助下,我可以开始让它工作:

http://jsfiddle.net/Sly7/2XHZ2/45/

您会注意到我第一次使用 App.Book.find() 来加载固定装置,而 App.Book.all() 似乎是一个实时数组,因此会保持更新。

我必须更进一步才能使选择工作。

好的,我目前的最后一次尝试...... http://jsfiddle.net/Sly7/2XHZ2/57/

最后编辑通过将 RESTSerializer 添加到 FixtureAdapter 使其工作。见http://jsfiddle.net/Sly7/2XHZ2/61/

于 2012-10-18T13:43:34.703 回答