0

多分単純なエラーですが検出できません。

私はインデックス

<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); 
      }; 
     }) 

最後に、私は、ユーザーにこれを持っているでapp.js

angular.module('angularfirebase', ['ionic', 'angularfirebase.crud', 'firebase']) 

そして、これでこれをこのスクリプトのを注入していますページ

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

私はconsole.logを表示すると、TypeError: $scope.users.$remove is not a function関数を削除します。何か案が?

答えて

0

removeuserからDataSnapshotまでお試しいただけません。 DataSnapshotは、データベースの単なるコピーであり、データの読み取りに使用されます。公式Firebase DataSnapshot Documentationによれば

A DataSnapshotは、データベースの場所におけるデータ の効率的に生成、不変コピーです。これは変更できず、 を変更することはありません(データを変更するには、参照番号 で常にset()メソッドを呼び出します)。

deleteへのユーザー、あなたの代わりにdataSnapshotの、database referenceを使用してそれを実行する必要があります。

はこれを試してみてください:

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はあなたがremoveしようとしているusers insid childであると仮定しています。 Removeの詳細については

、助けてくれてありがとう、Firebase Database Reference#remove Documentation

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); 
       } 
      }); 
     } 
    }) 

+0

私のアプローチを見ましたか?それはあなたのアプローチの修正です。 –

関連する問題