我想知道如何才能对中的项目进行部分更新$firebaseArray
,而文档却对此一无所知。.$save
似乎破坏了整个项目:
var ref = new Firebase("https://xxxx.firebaseio.com/items");
$scope.items = $firebaseArray(ref);
someItem = getItem();
someItem.newField= 'Test';
$scope.items.$save(someItem);
这将导致整个项目对象被完全覆盖,而不仅仅是更新 newField
我想我可以在这里帮忙。首先,几件事:
getItem()
不使用.$getRecord()
,因此someItem
没有$id
财产。因此,将someItem
get的属性设置为的属性$scope.items
。.$add(someItem)
选择itemsArray
是否要创建新项目。$scope.items.$save(someItem)
如果someItem
有,可以使用$id
。var ref = new Firebase(fbUrl+'/items');
itemsList = $firebaseArray(ref);
$scope.items = itemsList;
$scope.addItemObject = function() {
var someItem = {};
someItem.newField = 'test';
itemsList.$add(someItem);
console.log('$scope.items is',$scope.items);
}
$scope.updateItem = function() {
console.log('$scope.items was',$scope.items);
var id = prompt("Enter $id to update");
var someItem = itemsList.$getRecord(id);
var newField = prompt('Enter new value for newField');
someItem.newField = newField;
itemsList.$save(someItem).then(function(ref) {
console.log('$scope.items is now',$scope.items);
});;
}
看一眼:
希望有帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句