我有一个应用程序,我正在尝试监视控制器变量的更改并将其保存到firebase,如果发生任何更改,即3路绑定。
service.js
var ref = firebase.database().ref('checklists').orderByChild('checklistName').equalTo('Sample Firebase Sumant');
var obj = $firebaseObject(ref);
obj.$loaded().then(function () {
var key = Object.keys(obj);
var treeRef = firebase.database().ref('checklists/' + key[4] + '/tree');
fullTreeCache = $firebaseArray(treeRef);
fullTreeCache.$loaded().then(function () {
compressedTree = clipChildren(fullTreeCache);
console.log(compressedTree);
promise.resolve(raw ? fullTreeCache : compressedTree);
});
controller.js
vm.firebaseData =checklistTreeService.getFullTree();
$scope.$watch(function () {
return vm.firebaseData;
},function() {
vm.firebaseData.$save($scope,vm.firebaseData);
}, true);
当我在没有任何控制台错误的情况下更改一段数据但未将其保存到firebase实时数据库时,$ save语句正在执行。如果我的方法有问题,请帮帮我。
答案 0 :(得分:0)
您可以使用.then语法捕获错误来记录错误。像这样:
$scope.yourFunc = function() {
list.$save(recordOrIndex)
.then(function(){
// save successful
}, function(error){
console.log(error);
});
};
我相信你根据文档向$ save()传递了太多的参数。你必须通过"修改过的"记录或索引。如果您还没有阅读关于$ firebaseArrays的文档,那么您应该阅读。
https://github.com/firebase/angularfire/blob/master/docs/reference.md#saverecordorindex