私はこれを正しく理解し、そして私がいない可能性がある場合は、パラメータ{id: @id}
はへの別の方法の説明図でありますURL変数にデータを入力してください。
この方法を考える:私は、私が投稿していたデータに属性「petName」を持っている場合は、その属性の値は、私のURLで:theName
変数に格納されます
var myResource = $resource("/posts/:theName",
{theName: '@petName'},
{enter : {
method: "POST",
isArray: false
}
});
を。投稿データが{"petType": "cat", "petName": "Spot"}
であるとすると、URLは"/posts/Spot"
となります。私の考えでは、@
は、投稿されるオブジェクトの「属性」を意味します。
その値から@
を奪うと、url変数は、直接そのリソースのパラメータの値を参照します:
{theName: 'petName'} //no "@"
// url output ----> '/posts/petName'
を。それが唯一のURLに「スポット」を得るために5つのステップを取っ
//url var--> //$resource param {..} --->//Object to be posted
:theName---> {theName ----> @petName ---> {petName---> "Spot"
:
は、ここで参照のチェーンです!
。上記の例を使用して、リソースインスタンスの
例:サイドノートで
var postData = new myResource();
postData.petType = "cat";
postData.petName = "Spot";
postData.$enter({}, function(data){
$scope.data = data;
})
// url to post to will be '/posts/Spot', postData object will be
// {"petType":"cat", "petName:"Spot"}
、ドキュメントは、非常に混乱することができます。あなたは難しいコースを取ったことがありますか?教授はあなたの言語をほとんど話していない素晴らしい人でしたか?うん。
最後の部分は+1です。また、$スコープハンドルは非常によく約束します – Ven
ありがとう、私はそれを得ると思う...それは "クラス"を作成し、リソースから継承しているより意味があるようだ...そのほぼ同じようにメンバ変数、多分それも暗いかもしれない – James
全体が暗いです。 URLパラメータを追加できる場所は約4つあります。私がリソースを書くとき、私はできるだけシンプルで小さくします。何か大きいと私は$ httpを使用します。しかし、それは私だけです... – rGil