23

ドキュメントから ( http://docs.angularjs.org/api/ngResource.$resource ):

$resource(url[, paramDefaults][, actions]);

paramDefaults(optional) – {Object=}– URL パラメータのデフォルト値。... パラメータ値にプレフィックスが付いている場合、そのパラメータ@の値はデータ オブジェクトから抽出されます。

問題は、それらがどのデータ オブジェクトを参照しているのかということです。この機能を使用するには?

4

1 に答える 1

7

次のようなリソースがあるとしましょう。

var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123});

これは、URL内のの値が、そのプロパティが必要なときにユーザーオブジェクト:userIdのプロパティに置き換えられることを意味します。id

では、いつ必要になるのでしょうか。これは、既存のユーザーに対して何かをしているときに必要です。たとえば、ユーザーを更新しgetたり、更新したりします。ユーザーを作成する場合は必要ありません。

ほとんどの場合、リソースが使用するREST URL(おそらくオブジェクトID)には、少なくとも1つのパラメーターの前に@を付ける必要があります。オブジェクトがない場合は、オブジェクトのインスタンスを保存するために、オブジェクトが保存されている場所について何も知る必要がないことを意味します。これは、そのシングルトンオブジェクトを意味します。多分設定オブジェクトのように。

これがあなたの待望の例です:

var User = $resource('/user/:userId/:dogName', {userId:'@id', dogName:@dog});
User.get({userId:123, dog:'Matt'}, function() { .. })

リクエストを生成します:GET/user/123/Matt

于 2012-11-09T18:41:10.110 に答える