5

Ember で特定のモデルのカスタム REST URL を構成する方法はありますか?

このモデルのように:

App.Post = DS.Model.extend({
    title: DS.attr('string'),
    comments: DS.hasMany('App.Comment')
});
App.Comment = DS.Model.extend({
    content: DS.attr('string'),
    post: DS.belongsTo('App.Post')
});

そしてこの店:

app.Store = DS.Store.extend({
    revision : 11,
    adapter : DS.RESTAdapter.extend({
        namespace : 'rest'
    })
});

デフォルトの動作では/rest/post/{id}/commentsなく、コメントを取得する必要があります。 特定のモデルに対して REST URL を設定することはできますか?/rest/comments

4

2 に答える 2

1

これは文字通り、アプリ全体の 1 つのモデルのためのものですか、それとも REST バックエンドが使用するデフォルトの「hasMany」URI ですか? 私のAPI(Django Rest Framework)はこの正確なURIを使用し、ember-dataプロジェクトで本格的なプルリクエストが必要だったため、URLを構築するにはアダプターが関連する「親」または「所有者」を必要とするため、質問します(レール開発者が決して必要だったので存在しませんでした)。

独自のアダプターを作成します (基本アダプターをサブクラス化して、異なる単一の hasMany のみをオーバーライドします)。私がアダプター用に書いた方法は以下の通りです。

これは ember-data リビジョン 11 に対応しています (まだ 12 にアップグレードしていません)。

https://github.com/toranb/ember-data-django-rest-adapter/blob/master/tests/adapter.js

    findMany: function(store, type, ids, parent) {
        var json = {}
        , root = this.rootForType(type)
        , plural = this.pluralize(root)
        , ids = this.serializeIds(ids)
        , url = this.buildFindManyUrlWithParent(store, type, ids, parent);

        this.ajax(url, "GET", {
            success: function(pre_json) {
                json[plural] = pre_json;
                Ember.run(this, function(){
                    this.didFindMany(store, type, json);
                });
            }
        });
    },
于 2013-03-06T14:17:35.800 に答える