7

ここのドキュメントには、次のように書かれています。

url – {string} – action specific url override. 
The url templating is supported just like for the resource-level urls.

この優れた機能を使用したいので、これを試しました:

angular.module("experience", ['ngResource'])

    .factory('Experience', function ($resource, identity) {

    return $resource("api/experiences/:id", {}, {
        queryAll : {
            method  : 'GET',
            url     : 'api/companies/' + identity.id + '/experiences',
            isArray : true
        }
    });
});

queryAll メソッドの URL を上書きしようとしていることがわかります。しかし、これは機能しません。クエリは引き続き URL api/experiences を送信します。これは本当にサポートされていますか、それとも何か間違っていますか? 助けてくれてありがとう。

4

2 に答える 2

2

私は自分のプロジェクトで非常によく似た問題を抱えています。リソース アクションで URL をオーバーライドできませんでした。Angular 1.2.0 を使用していますが、1.1.4 以降の機能をサポートする必要があります。そこで、Angular API リファレンスの CHANGELOG を確認しましたが、うまくいきませんでした。次に、ソース コードを調べたところ、URL をオーバーライドするロジックが存在しないことに気付きました。それが問題の根本原因です。angular-resource.jsAngular を 1.2.0 にアップデートしたのですが、対応するバージョンにアップデートするのを忘れていました。

簡単に言えば、angular-resource.jsのバージョンを確認してください

于 2014-11-25T08:28:33.150 に答える
1

identityURLオーバーライドでのプロパティにアクセスできるかどうかはわかりませんが、次のようなことを試すことができます:

return $resource("api/experiences/:id", {}, {
    queryAll : {
        method  : 'GET',
        url     : 'api/companies/:id/experiences',
        params  : { id: identity.id },
        isArray : true
    }
});

は、(存在する場合)id: identity.idの id プロパティを使用するように angular に指示しますidentity

于 2013-11-27T11:37:58.693 に答える