可能是一个简单的错误,但我无法检测到它。
我在索引
中有这个脚本N
我在app.js中注入了这个
<head>
<script src="lib/ionic/js/ionic.bundle.min.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
</head>
<body ng-app="angularfirebase">
<ion-nav-view></ion-nav-view>
<script src="https://www.gstatic.com/firebasejs/3.6.2/firebase.js"></script>
<script src="https://cdn.firebase.com/libs/angularfire/2.2.0/angularfire.min.js"></script>
<script>FIREBASE KEY</script>
这在controller.js
中angular.module('angularfirebase', ['ionic', 'angularfirebase.crud', 'firebase'])
最后我在用户页面中有这个
angular.module('angularfirebase.crud', [])
.controller('usersController', function ($scope) {
var users = root.ref('/users/');
//Show All
users.on("value", function (snapshot) {
//No real time
$scope.users = snapshot.val();
});
//Remove
$scope.removeUser = function (id) {
alert("Remove");
$scope.users.$remove(id);
};
})
当我点击删除功能console.log show <div ng-repeat="(id, user) in users">
CODE
<i class="ion-trash-a" title="Delete" ng-click="removeUser(id)"></i>
时。 ¿有什么想法吗?
答案 0 :(得分:0)
您正试图remove
来自user
的{{1}},这是不可能的。 DataSnapshot
只是数据库的副本,用于读取数据。
根据官方Firebase DataSnapshot Documentation:
DataSnapshot是一种高效生成的,不可变的数据副本 在数据库位置。它无法修改,永远不会改变 (要修改数据,您始终在Reference上调用set()方法 直接地)。
要DataSnapshot
用户,您需要使用delete
代替database reference
。
试试这个:
dataSnapshot
我假设users.child(id).remove().then(function() {//users is the user database reference
console.log("Remove succeeded.")
})
.catch(function(error) {
console.log("Remove failed: " + error.message)
});
是id
insid child
您尝试users
。
有关remove
的更多信息,请阅读Firebase Database Reference#remove Documentation
答案 1 :(得分:0)
我使用Angularfire和此
修复此错误 $scope.removeUser = function (id) {
var user = $firebaseObject(users);
//Want to show item name
var confirm = $ionicPopup.confirm({
title: '<div><i class="ion-trash-a max"></i><div><h2>¿Are you sure?</h2></div>',
subTitle: '<h4>The user <b>' + id + '</b> will be deleted.</h4>',
});
confirm.then(function (res) {
if (res) {
user.$remove(id);
}
});
}
})
无论如何,谢谢你的帮助。