2014-01-09 84 views
0

我使用angularFire v 0.5.0最佳拿到鑰匙的方式後

在我返回的對象我做了$加$添加。

什麼是獲得生成的密鑰的最佳方式?

它必須是$ add的成功回調中的某些東西,因爲密鑰會異步迴歸?

scope.settings = $firebase(ref); 

scope.settings.value = { 
    vat: { 
     inclusive: true 
    } 
} 
      } 
scope.settings.$add (scope.settings.value).then(function ({ 
    scope.settings.key = ??? 
}); 

注意:這不是實際的代碼,這只是爲了澄清問題。

活動代碼位於加載事件的工廠內部,並且檢查數據庫中是否已有設置對象。

這個有點奇怪的結構是讓工廠的消費者更容易改變設置。這些設置是單身人士。 AngularFire不返回一個對象數組,但每個項目都是設置中的一個對象,並帶有自己的鍵。

回答

0

從angularfire文檔:

的$添加方法採用任何類型的單個參數。它會將此值附加爲列表的成員(按時間順序排序)。這相當於在Firebase參考中調用推送(值)。

從火力文檔(約推()):

返回 爲所生成的位置甲火力地堡參考。

所以,我認爲你想要的「關鍵」是$ add的返回值。

0

也許他們已經在新版本中改變了它,現在它的工作原理是這樣的:

$加()將返回一個承諾。您必須使用成功運行的回調。例如:

var something = $scope.somethings.$add({name: "foo"}); 
something.then(function(e) { 
    console.log(e.name()) 
}); 

這使您可以根據對Firebase的保存/寫入嘗試的結果執行不同的操作。