什么是传递给$资源的@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中的:theNamevariables中。 想象一下发布的数据是{"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"} 

在旁注中,文档可能非常混乱。 你有没有采取过艰难的过程,教授是一个聪明的人谁几乎不会说你的语言? 对。