Ember.js:每次往返api都会添加相同值的新部分

时间:2013-05-06 08:42:23

标签: javascript ember.js

继续玩Ember.js

我只是从api获取值并尝试显示它。 我成功获取数据,但当我再次加载路由(单击链接)数据附加到列表而不是替换。我点击了多少次 - 每次都将完整列表附加到结尾。

代码很大,实际上没有意识到要显示的部分。

也许原因在于键映射?我就这样做了

App.Adapter.map('Semantic', {
    primaryKey: 'key'
});

编辑:JsFiddle链接 - http://jsfiddle.net/bug0r/94h3a/31/

单击“关于”,然后再单击“主页”。

1 个答案:

答案 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的数据)。

见分叉小提琴

http://jsfiddle.net/ddewaele/eJCsQ/