$resource("/entries/:id", {id: "@id"}, {update: {method: "PUT"}})
@id 是什么?
在 $resource文档页面上有人在下面这样说,但我还是不明白。
如果参数值以 @ 为前缀,则该参数的值是从数据对象中提取的(对非 GET 操作很有用)。”
postData
如果使用非 GET “类”操作,则此处的数据对象指的是对象,或者如果使用非 GET 实例操作,则实例本身。
如果我理解正确,但我可能没有正确理解,该参数{id: @id}
说明了另一种向 url 变量提供数据的方式。
鉴于此方法:
var myResource = $resource("/posts/:theName",
{theName: '@petName'},
{enter : {
method: "POST",
isArray: false
}
});
如果我在发布的数据中有一个属性“petName”,那么该属性的值将放在:theName
我的 url 中的变量中。想象一下 post 数据{"petType": "cat", "petName": "Spot"}
,url 将被读取"/posts/Spot"
。在我看来,这@
意味着要发布的对象的“属性”。
@
从该值中取出url 变量将直接引用该资源参数中的值:
{theName: 'petName'} //no "@"
// url output ----> '/posts/petName'
.
以下是参考链:
//url var--> //$resource param {..} --->//Object to be posted
:theName---> {theName ----> @petName ---> {petName---> "Spot"
只需 5 个步骤即可将“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"}
附带说明一下,文档可能非常混乱。你有没有上过一门困难的课程,教授是一个几乎不会说你的语言的聪明人?是的。
var myResource = $resource("/entries/:theName",
{theName: '@petName'},
{update : {
method: "PUT",
isArray: false
}
});