remove just a item by angularfire

对着背影说爱祢 提交于 2019-12-23 04:54:28

问题


I just want to remove an item, but my code removes all the items. I don't understand and can't find another solution,

please help

<div ng-repeat="(id, data) in datas">
<input type="text" ng-model="data.name" ng-change="datas.$save(data)" />  
<input type="text" ng-model="data.age" ng-change="datas.$save(data)" />
<a ng-click="removeItem(id)">delete</a>
</div>


ref = new Firebase(FIREBASE_URL);
authData = ref.getAuth();
obj = $firebaseObject(ref);    
obj.$remove(id);

回答1:


If FIREBASE_URL points to your list (or even entire database), then indeed your code will delete that list. This is expected behavior. Since you're using $firebaseObject, calling $remove() on that will remove the object; in this case the entire list of items.

To remove only the item with id:

var ref = new Firebase(FIREBASE_URL);
var items = $firebaseArray(ref);    
items.$remove(items.$indexFor(id));

This is a bit convoluted btw, you can just as easily do:

new Firebase(FIREBASE_URL).child(id).remove();

This has been asked before, so please become friendly with search:

  • Angularfire: Delete item(s)
  • AngularFire $remove item from Array using a variable in Firebase reference does not work
  • AngularFire - Remove Single Item
  • Delete single item in Firebase with AngularJS



回答2:


To delete just a single property from a Firebase object use the JavaScript delete operator and then $save the object.

HTML

<div ng-repeat="(key, data) in datas">
    <input type="text" ng-model="data.name" ng-change="datas.$save()" />  
    <input type="text" ng-model="data.age" ng-change="datas.$save()" />
    <button ng-click="removeItem(key)">delete</button>
</div>

JS

var ref = new Firebase(FIREBASE_URL);
var authData = ref.getAuth();

$scope.datas = $firebaseObject(ref);

$scope.removeItem = function(key) {
    delete $scope.datas[key];   
    $scope.datas.$save();
};

For more information, see MDN JavaScript Reference -- delete operator.



来源:https://stackoverflow.com/questions/35534080/remove-just-a-item-by-angularfire

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!