Ember.js Ember store find()-使用服务器响应中的ID,而不是传递给find函数的任何内容
每当我调用Ember.js Ember store find()-使用服务器响应中的ID,而不是传递给find函数的任何内容,ember.js,ember-data,ember-cli,Ember.js,Ember Data,Ember Cli,每当我调用this.store.find('campaign',url),如果在存储中找不到该条目,它就会向API发出请求,并在该存储中创建ID为url的记录。我需要能够确保推送到存储的记录使用API返回的有效负载中的id,而不是传递到find()函数中的url。最好的方法是什么?重写序列化程序的extractId(),不管它是a还是。似乎不起作用。。。这是我的代码,没有任何输出。添加了什么版本的余烬?我用的是1.12导出默认的DS.RESTSerializer.extend({extractI
this.store.find('campaign',url)
,如果在存储中找不到该条目,它就会向API发出请求,并在该存储中创建ID为url
的记录。我需要能够确保推送到存储的记录使用API返回的有效负载中的id
,而不是传递到find()
函数中的url
。最好的方法是什么?重写序列化程序的extractId()
,不管它是a还是。似乎不起作用。。。这是我的代码,没有任何输出。添加了什么版本的余烬?我用的是1.12<代码>导出默认的DS.RESTSerializer.extend({extractId:function(model,hash){console.log(model);console.log(hash);返回这个。_super(model,hash);})看来我说的是对的。。。我想我需要使用extractFind
或extractSingle
,但我不知道如何覆盖它。我尝试了类似于extractSingle:function(store,type,payload,id){id=payload.campaign.id;返回这个。{u super(store,type,payload,id);}
的方法,但没有成功您是对的。。。我在RESTSerializer的成员数据1.13中找不到extractId()。我有一个重写find()
的想法,但我认为这也没用。如果您使用queryRecord('campaign',{id:url})
而不是find()
,那会是什么样子呢?好吧,queryRecord也是新的API,我通常会使用find('campaign',{url:'test})
之类的东西,它会在内部调用findQuery
适配器。。。我试过了,但我相信它需要一个数组,API返回一条记录。