Как да актуализирате един обект в рамките на възел.
{
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" }) );
Много по-просто