自定义适配器导致loadingData问题

时间:2014-04-28 23:15:50

标签: javascript ember.js ember-data

我计划创建一个从SPARQL端点获取某些数据的应用程序。 此端点不包含表,但RDF三元组。

包含的数据必须转换为以下模型。这些模型的ID是URI(字符串)。

App.Category = DS.Model.extend({
    statistics: DS.hasMany('statistic', {async: true}),
    title: DS.attr('string')
});
App.Statistic = DS.Model.extend({
    category: DS.belongsTo('category'),
    title: DS.attr('string')
});

我为每个模型创建了自定义适配器和序列化程序,以处理自定义查询和数据转换。

当我渲染模型中的所有类别时,我还想显示该模型中的统计信息。我使用以下部分执行此操作:

<script type="text/x-handlebars" id="categories">
  <h2>Statistics</h2>
  <ul>
    {{#each category in model}}
      <li>{{category.title}}</li>
      <ul>
      {{#each statistic in category.statistics}}
      <li>{{statistic}}</li>
      {{/each}}
      </ul>
    {{/each}}
  </ul>
</script>

这个路由器就是这个

App.CategoriesRoute = Ember.Route.extend({
    model: function(params) {
        return this.store.find('category');
    }
});

使用这种方法我得到以下Javascript错误

Uncaught Error: Attempted to handle event `loadingData` on    <App.Statistic:ember634:http://ewi.mmlab.be/geo#SportOffers> while in state root.loading.

多次出现此错误

Error: Assertion Failed: Emptying a view in the inBuffer state is not allowed and should not happen under normal circumstances. Most likely there is a bug in your application. This may be due to excessive property change notifications.

我猜这与我的统计适配器中对findMany的多次调用有关,但是我不确定如何解决这个问题。

所有代码均可在以下位置查看:http://emberjs.jsbin.com/gedatizu/4/edit

提前致谢

0 个答案:

没有答案