2014-09-25 84 views
1

在angularfire中使用$ set和$ save有什麼區別? 此外,有沒有在以下情況下發送到服務器的數據量的不同:

我能有一個火力點對象:

$rootScope.projectgroups= pgsync.$asObject(); 

在$ rootScape定義,可以節省從每一個到它的變化控制器,通過簡單地調用

$rootScope.projectgroups.$save(); 

我還可以節省使用$設置到服務器的更改和定義childobject的確切位置:

$firebase(pgref.child($rootScope.prgrid + 
"/projects/")).$set($rootScope.prid, 
$rootScope.projectgroups[$rootScope.prgrid].projects[$rootScope.prid]); 

是一個分配的新數據使用$的childobject集上的數據交易更便宜的服務器比使用$保存整個對象?或者,angularfire會以某種方式將對象與對象歷史進行比較,並只將最後一次本地更改推送到服務器?

回答

2

是什麼使用$設置和$保存在angularfire之間的區別?

$set作爲$firebase服務的便利而存在。它可以被調用,而不必先在本地下載任何數據。

$save存在於同步的對象/陣列。它在內部調用$set,這可以通過查看源代碼來了解(這是瞭解lib的一個很好的方法)。它通過將同步的對象/數組轉換爲JSON數據並將它們發送到$set來保存同步的對象/數組。

此外,有沒有

一點都沒有

在以下情況下發送到服務器的數據量的區別是分配使用$設置更便宜的新數據childobject在數據交易到服務器比使用$保存整個對象?

它更便宜,如果你沒有在本地同步數據。如果您已經下載了一個集合,它們是相同的。

or angularfirefire會以某種方式比較對象與對象歷史記錄,並只將最後一次本地更改推送到服務器?

它沒有,但Firebase在內部處理這些複雜性,因此您(和AngularFire)只需編碼並且很高興。

+0

「您可以通過快速瀏覽源代碼發現」Behave Kato!請不要告訴他們我的大部分答案的祕訣。 ;-) – 2014-09-25 18:26:43

+0

Doh!開源/祕密醬油;我總是讓他們感到困惑。 :( – Kato 2014-09-25 21:14:43

+1

我已經解僱了我的行爲治療師(詛咒你'M-x醫生')並修改了違規的句子,因爲那從來就沒有意圖,感謝您指出了這一點 – Kato 2014-09-25 21:22:06