2013-07-09 33 views
53
$resource("/entries/:id", {id: "@id"}, {update: {method: "PUT"}}) 

@id是什麼?

關於$資源doc page有人在下面說這個,但我還是不明白。

如果參數值與@前綴,則該 參數的值從數據對象中提取(用於有用的非GET 操作)。」的數據在這裏對象指的是postData對象,如果 非-GET「下課」的動作時,還是該實例本身,如果非GET用於 情況下采取行動。

回答

64

如果我理解正確此,我可能不會,參數{id: @id}是另一種方式的說明爲您的網址變量提供一段數據。

鑑於這種方法:

var myResource = $resource("/posts/:theName", 
          {theName: '@petName'}, 
          {enter : { 
             method: "POST", 
             isArray: false 
            } 
          }); 

如果我有在我張貼的數據屬性「petName」,該屬性的值將被放置在:theName變量在我的網址。想象一下,發佈的數據是{"petType": "cat", "petName": "Spot"},網址將顯示爲"/posts/Spot"。在我看來,@意味着要發佈的對象的「屬性」。

奪去該值的@和URL變量將直接在該資源參數參考值:

{theName: 'petName'} //no "@" 
// url output ----> '/posts/petName' 

下面是引用鏈:

//url var--> //$resource param {..} --->//Object to be posted 
:theName---> {theName ----> @petName ---> {petName---> "Spot" 

只花了5個步驟來獲得「點」到網址!

。使用上述示例的資源實例的

實施例:

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"} 

在一個側面說明,該文檔可以非常混亂。你有沒有經歷過一個艱難的過程,而教授是一個聰明的人,幾乎不會說你的語言?對。

+3

+1最後一部分:D。 $ scope處理承諾非常好 – Ven

+0

謝謝,我想我明白了......似乎創建一個「類」並從資源繼承它會更有意義...它幾乎就像這是一個成員變量,但也許這也是朦朧的 – James

+7

整件事情都很模糊。有大約4個不同的地方可以添加網址參數。當我編寫資源時,我儘可能簡單和小巧。任何大的,我使用$ http。但那只是我...... – rGil

相關問題