什么是传递给$资源的@id?
$resource("/entries/:id", {id: "@id"}, {update: {method: "PUT"}})
什么是@id?
在$资源文档页面有人在下面说,但我仍然不明白。
如果参数值以@为前缀,则从数据对象中提取该参数的值(对非GET操作有用)。“如果使用非GET”class“操作,则此处的数据对象指的是
postData
对象,或者如果使用非GET实例操作,则实例本身。
如果我正确地理解了这一点,而且我可能不了解,那么{id: @id}
参数就是另一种向urlvariables提供数据的方法。
鉴于此方法:
var myResource = $resource("/posts/:theName", {theName: '@petName'}, {enter : { method: "POST", isArray: false } });
如果我在发布的数据中有一个属性“petName”,那么该属性的值将被放置在:theName
我的url中的:theName
variables中。 想象一下发布的数据是{"petType": "cat", "petName": "Spot"}
,url将会显示"/posts/Spot"
。 在我看来, @
意味着要发布的对象的“属性”。
从该值中取出@
,urlvariables将直接引用该资源参数中的值:
{theName: 'petName'} //no "@" // url output ----> '/posts/petName'
。
这里是引用链:
//url var--> //$resource param {..} --->//Object to be posted :theName---> {theName ----> @petName ---> {petName---> "Spot"
它只需要5个步骤,以获得“点”的url!
。
使用上述示例的资源实例的示例:
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"}
在旁注中,文档可能非常混乱。 你有没有采取过艰难的过程,教授是一个聪明的人谁几乎不会说你的语言? 对。