Javascript 找不到Angularfire$删除功能

Javascript 找不到Angularfire$删除功能,javascript,angularjs,firebase,ionic-framework,firebase-realtime-database,Javascript,Angularjs,Firebase,Ionic Framework,Firebase Realtime Database,可能是一个简单的错误,但我无法检测到它 我有这个脚本的索引 <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-

可能是一个简单的错误,但我无法检测到它

我有这个脚本的索引

<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.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);
            };
        })
最后我在用户页面上看到了这个

<div ng-repeat="(id, user) in users">
    CODE
<i class="ion-trash-a" title="Delete" ng-click="removeUser(id)"></i>

代码

当我单击remove function console.log时,显示
类型错误:$scope.users.$remove不是一个函数
。有什么想法吗?

您正在尝试从
DataSnapshot
中删除
用户
,这是不可能的
DataSnapshot
只是数据库的一个副本,用于读取数据

据该官员称:

DataSnapshot是高效生成的、不可变的数据副本 在数据库位置。它不能被修改,也永远不会改变 (要修改数据,请始终对引用调用set()方法 直接)

删除用户
,您需要使用
数据库引用
,而不是
数据快照

试试这个:

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
内部
用户
,您正试图
删除该子


有关
删除
的详细信息,请阅读我使用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);
                }
            });
        }
    })
$scope.removeUser=函数(id){
var user=$firebaseObject(用户);
//要显示项目名称吗
var confirm=$ionicPopup.confirm({
标题:'你确定吗?',
副标题:“将删除用户“+id+”,
});
确认。然后(功能(res){
如果(res){
用户.$remove(id);
}
});
}
})

无论如何,谢谢你的帮助。

你看过我的方法吗?这是对你方法的修正。
  $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);
                }
            });
        }
    })