1

角度ドキュメントに$resourceは、次の例があります。

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

私はグーグルでドキュメントを読んでいますが、どのようにデータが取り込まれているのかわかりません@id。これを説明しているように見えるセクションはありません$resources。私が遭遇したことのないドキュメントのどこかにあるはずです。誰かが私を正しい方向に向けるのを手伝ってくれますか?

4

1 に答える 1

6

url/user/:userIdでは、このuserId部分はプレースホルダーです。これを実際のユーザー ID に置き換えて実際の URL を取得するように AngularJS に指示しています。

を記述する 2 番目の部分では、{userId : '@id'}AngularJS に、 a が指定されていない場合はオブジェクトのプロパティuserIdを使用する必要があることを伝えています。id

いくつかの例を示して説明します。

もしあなたがそうするなら

var user = User.get({userId : 123});

の値を明示的に指定したuserIdので、Angular はそれを使用して url を作成します/user/123/。ただし、そうする場合

var user = User();
user.id = 123;
user.get()

この場合、 の値を明示的に指定しなかったuserIdため、Angular はuser.idforの値を使用しuserId、再度 url を作成します/user/123/

rajkamal の言及と同様に、これは非 GET 操作に役立ちます。実際の使用例は、次のようなことを行う場合です。

// user wants to work with Post 10. So we fetch that
var post = Post.get({postId : 10});

// user works with it, makes some changes
post.body = 'New body';
post.topic = 'New topic';

// user is done, and wants to save. You make a POST call
// without having to specify it's id again
post.save();
于 2013-04-12T17:45:18.403 に答える