2014-09-25 5 views
1

В чем разница между использованием $ set и $ save в angularfire? Кроме того, есть ли разница в объеме переданного на сервер в следующем случае:

Я мог бы иметь firebase объекта:

$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]); 

Назначает новые данные дочернему объекту, используя $ set дешевле на транзакции данных на сервере, чем использование $ save на весь объект? Или angularfire сравнивает объект как-то с историей объекта и только нажимает последние локальные изменения на сервер?

ответ

2

В чем разница между использованием $ set и $ save в angularfire?

$set есть в качестве удобства на $firebase обслуживание. Его можно назвать без необходимости сначала загружать данные локально.

$save существует на синхронизированных объектах/массивах. Он называет $set внутренне, что видно из проверки источника (отличный способ узнать о lib). Он сохраняет синхронизированные объекты/массивы, преобразовывая их в данные JSON и затем отправляя их на $set.

Кроме того, есть ли разница в объеме переданных на сервер в следующем случае

Отсутствует на всех

ли назначение новых данных в childobject с помощью $ установить дешевле на транзакцию данных на сервер, чем на $ save на весь объект?

Это дешевле, если у вас нет синхронизированных данных локально. Если у вас уже есть коллекция, она эквивалентна.

Или угловое излучение каким-либо образом сравнивает объект с историей объекта и только толкает последние локальные изменения на сервер?

Это не так, но Firebase обрабатывает эти сложности внутри, чтобы вы (и AngularFire) могли просто кодировать и быть счастливыми.

+0

", который вы можете обнаружить, быстро взглянув на исходный код" Behave Kato! И не рассказывайте им секретный соус для большинства моих ответов, пожалуйста. ;-) –

+0

Doh! Открытый исходный/секретный соус; Я всегда смущаюсь. :( – Kato

+1

Я уволил своего поведенческого терапевта (проклинаю вас «M-x doctor») и пересмотрел оскорбительное предложение, поскольку это никогда не было целью. Спасибо, что указали это. – Kato