3

私は非常に、非常に、非常に Ember に慣れていません :-)

Rails Server からデータを取得するために、.json で拡張子を強制したい DS.Model があります。

サーバーからの URL は機能しており、ブラウザーのデバッガーで確認できるように、URL は DS.model url で指定されたものではありません。

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')
});

手段を手動でフェッチします。

var model2 = App.store.find(App.Expedient, 125000);

出力コンソール:

OPTIONS http://127.0.0.1:3000/expedients/125000 404 (Not Found) 

このURLを次のようにしたいと思います:

http://127.0.0.1:3000/expedients/125000.json 

また、DS.Model の URL を次のような別の名前に実際に変更しようとしました。

App.Expedient.reopenClass({
 url: 'mockurl/%@.json'
});

しかし、ブラウザーのコンソールには以前と同じ「url」があります。Ember-Data がモデルの URL を取得していない理由がわかりません。

ありがとう!

よろしく、

ps。2 つのオリジンから Ajax をテストするときの Access-Control-Allow-Origin CORS の問題を認識しています

4

3 に答える 3

5

何らかの理由で github が現在機能していないため、ember のソースを見ることはできませんが、次のようなことができると思います。

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

デフォルトの REST アダプターの代わりに、これをストアに接続する必要があります。

于 2012-11-30T18:12:58.847 に答える
2

RESTAdapter サブクラスでこれを試したところ、動作しています。

 App.WORESTAdapter = DS.RESTAdapter.extend({
    ...
    buildURL: function(record, suffix){
       return this._super(record, suffix) + ".json";
    }
})
于 2012-12-01T21:38:54.830 に答える