我对Ember.js比较陌生,我正在努力研究ember是如何工作的,我遇到了这个问题:
从Ember.js路线我会像这样叫我的django api:this.store.findAll('MYMODEL', 'ANOTHER_MODEL_ID')
这个findAll会产生一个api调用,比如/ mymodel / another_model_id /其中 another_model_id 是一个动态id(类似字符串的uuid)。
我尝试使用扩展ApplicationAdapter的自定义适配器(mymodel适配器)覆盖findAll方法(带有自定义buildUrl的JSONAPIAdapter用于添加尾部斜杠)。但是我的尝试失败了,因为在findAll重写的方法中,我无法访问 ANOTHER_MODEL_ID 参数。我也试图用相同的结果覆盖urlForFindAll和buildUrl方法。
做这种事情的最佳方法是什么?我该怎么做?
答案 0 :(得分:0)
findAll没有id参数。你的意思是找(' modelname',' id')?
import DS from 'ember-data';
export default DS.Adapter.extend({
findAll: function(store, type, sinceToken) {
var query = { since: sinceToken };
return new Ember.RSVP.Promise(function(resolve, reject) {
Ember.$.getJSON(`/${type.modelName}`, query).then(function(data) {
resolve(data);
}, function(jqXHR) {
reject(jqXHR);
});
});
}
});
答案 1 :(得分:0)
我已经解决了使用urlForQuery函数并将我的适配器声明为JSONAPIAdapter,并使用DataAdapterMixin扩展它。