继续玩Ember.js
我只是从api获取值并尝试显示它。 我成功获取数据,但当我再次加载路由(单击链接)数据附加到列表而不是替换。我点击了多少次 - 每次都将完整列表附加到结尾。
代码很大,实际上没有意识到要显示的部分。
也许原因在于键映射?我就这样做了
App.Adapter.map('Semantic', {
primaryKey: 'key'
});
编辑:JsFiddle链接 - http://jsfiddle.net/bug0r/94h3a/31/
单击“关于”,然后再单击“主页”。
答案 0 :(得分:2)
您的DataStore / RESTAdapter模型密钥设置存在问题。
尝试以下方法:
DS.RESTAdapter.reopen({
url: 'http://bug0r.apiary.io/api'
});
App.Adapter = DS.RESTAdapter.extend({
serializer: DS.RESTSerializer.extend({
primaryKey: function (type){
return 'key';
}
})
});
App.Store = DS.Store.extend({
revision: 12,
adapter: App.Adapter
});
这为DataStore / RESTAdapter提供了有关记录主键的重要信息。没有它,它无法知道它内部已经可用的记录以及从REST API接收的内容(因此它会继续附加来自REST API的数据)。
见分叉小提琴