13

私はAngularJSを学び、そのAPIを読んでいます

AngularJSリソース

「パラメータ値の前に接頭辞が付いている場合、そのパラメータ@の値はデータオブジェクトから抽出されます」というコード例があります。

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

私はとても遅いので、例の後、接頭辞が何を@意味するのか/何をするのかまだわかりません。誰かが私にいくつかの例を教えてください@。ありがとう...

4

1 に答える 1

10

もちろん。

これは、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-02T02:23:58.030 に答える