DS.Model网址不在ember.js中工作

mon*_*eta 3 ember.js ember-data

我对Ember非常,非常非常新:-)

我有一个DS.Model,我想用.json强制扩展,从Rails服务器检索数据.

来自服务器的网址正在运行,我可以在浏览器的调试器中看到,网址不是DS.model网址中指定的网址

var App = Ember.Application.create();

App.store = DS.Store.create({
 adapter:  DS.RESTAdapter.create({url: 'http://127.0.0.1:3000'}),
revision: 8
});


App.Expedient = DS.Model.extend({
  url: 'expedients/%@.json',
  procedencia: DS.attr('string'),
  interessat_nom: DS.attr('string'),
  data_signatura_provisional: DS.attr('date')
});
Run Code Online (Sandbox Code Playgroud)

手动获取权宜之计:

var model2 = App.store.find(App.Expedient, 125000);
Run Code Online (Sandbox Code Playgroud)

输出控制台:

OPTIONS http://127.0.0.1:3000/expedients/125000 404 (Not Found) 
Run Code Online (Sandbox Code Playgroud)

我想成为这样的网址:

http://127.0.0.1:3000/expedients/125000.json 
Run Code Online (Sandbox Code Playgroud)

此外,我试图真正改变DS.Model网址与另一个不同的名称,如下所示:

App.Expedient.reopenClass({
 url: 'mockurl/%@.json'
});
Run Code Online (Sandbox Code Playgroud)

但浏览器的控制台与之前的"url"相同,我不知道为什么Ember-Data没有得到模型的url.

谢谢!

问候,

PS.从两个来源测试Ajax时,我知道Access-Control-Allow-Origin CORS问题

jon*_*nii 5

由于某些原因,github现在无法正常工作,所以我无法查看ember的来源,但我认为你可以这样做:

var adapter = DS.RestAdapter.extend({
  buildURL: function(record, suffix) {
    var s = this._super(record, suffix);
    return s + ".json";
  })
});
Run Code Online (Sandbox Code Playgroud)

你需要将你的商店插入而不是默认的休息适配器.