我计划创建一个从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
提前致谢