/ / AngularFire актуализиране на единичен обект - firebase, angularfire

AngularFire актуализира единичен обект - firebase, angularfire

Как да актуализирате един обект в рамките на възел.

{
foo:
{
title: "hello world",
time: "1000"
}
}

Както по-горе, аз просто искам актуализация заглавие. $firebase(new Firebase(ref).child("foo")).$save(); ще актуализира целия възел. Също така опитах $save("title") но не работят.

Причината, поради която просто искам да актуализирам един обект, защото някои от ng-моделите няма нужда да се актуализират firebase.

Отговори:

3 за отговор № 1

Ето един пример за задаване на заглавието на "каквото"

$firebase(new Firebase(ref)).$child("foo").$child("title").$set("whatever")

2 за отговор № 2

Наскоро работих сfirebase. Не съм сигурен дали това е корекция, но не мисля, че не е нужно да избирате изрично собствеността на елемента, която искате да актуализирате, когато използвате метода $ save ().

Например, в моя случай на употреба бях избирането на потребител и имах init функция, която получи целия обект

HTML

<ul ng-repeat="user in vm.users>
<button ng-click="vm.updateUserInit(user)">Edit</button>
</ul>

Тогава отвори формуляра за актуализиране с потребителските свойства. В контролера взех този потребител и го зададох в a $firebaseObject.

контрольор

var selectedUser;

vm.updateUserInit = function (user) {
var ref = new Firebase("https://<foo>.firebaseio.com/users/" + user.$id);
selectedUser = $firebaseObject(ref);
}

То просто поставя потребителя в обект с firebase като променлива selectedUser да се използва в $ save.

След това, когато потребителят обновява подробностите

HTML

<button type="button" ng-click="vm.updateUserDetails()">Update User Details</button>

функцията вече има избрания потребител като обект за използване и всичко, което е добавено, ще бъде актуализирано. Всичко, което е пропуснато, няма.

контрольор

vm.updateUserDetails = function () {
selectedUser.firstName = vm.firstName;
selectedUser.$save();
}

Най- selectedUser.$save(); променя само първото име, въпреки че потребителят има 6 други свойства

Не съм сигурен дали това помага, опитвайки се да обгърне и всичко това. Разгледайте valcon ако не го имате вече. Наистина хубаво продължение на хромиран инспектор за огнената база

АКТУАЛИЗАЦИЯ ЗА АНГУЛИРАНЕ 2

ако създадете услуга за вашите повиквания, която може да обслужва всички повиквания за актуализиране

 constructor(private db: AngularFireDatabase) {}

update(fbPath: string, data: any) {
return this.db.object(fbPath).update(data);
}

И тогава в компонента на страницата

 this.api.update(`foo`, ({ title: "foo Title" }) );

Много по-просто