Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何基于属性:键值删除Firebase对象?_Javascript_Angularjs_Angularjs Scope_Firebase_Angularfire - Fatal编程技术网

Javascript 如何基于属性:键值删除Firebase对象?

Javascript 如何基于属性:键值删除Firebase对象?,javascript,angularjs,angularjs-scope,firebase,angularfire,Javascript,Angularjs,Angularjs Scope,Firebase,Angularfire,我刚从AngularJs和Firebase开始。我正在创建待办事项列表应用程序 在我的应用程序中,我有这样一个html表单: <form name="frm" ng-submit="addTodo()" id="form-border"> <div class="form-inline"> <input type="text" class="form-control" name="newtodo" ng-model="newtodo" requi

我刚从AngularJs和Firebase开始。我正在创建待办事项列表应用程序

在我的应用程序中,我有这样一个html表单:

<form name="frm" ng-submit="addTodo()" id="form-border">
    <div class="form-inline">
      <input type="text" class="form-control" name="newtodo" ng-model="newtodo" required="" id="inputform" />
      <button class="btn btn-success" ng-disabled="frm.$invalid">Go</button>
      <button class="btn btn-danger" ng-click="clearCompleted(todo)">Clear Completed</button>
    </div> <!-- end form group -->
  </form>

我正在标记完成的任务clickDone(todo),它从ng repeat中获取变量“todo”。像这样:

$scope.clickDone = function(todo){
    $scope.todos.$save(todo); //saves todo state when is checked
  };  

我的困境是,我试图用我的ng click=“clearCompleted(todo)”删除一个对象,或者换言之,标记为complete。 可以在第一个代码块中找到 但是我认为clearCompleted()函数不在ng repeat=“todo in todos”范围内,因此使用此函数删除对象时遇到一些问题

我正在尝试删除此项,但没有成功和错误

TypeError:无法读取未定义的属性“done”


我刚想出来!!我必须运行forEach()方法查看$scope.todos并检查todo.done的计算结果是否为true

 $scope.clearCompleted = function(){ $scope.todos.forEach(function(todo){ if(todo.done){ $scope.todos.$remove(todo); } }); };
$scope.todos.$add({'title':$scope.newtodo,'done':false, 'timetag': datecreated}); //push to Array 

    $scope.newtodo = '';
$scope.clickDone = function(todo){
    $scope.todos.$save(todo); //saves todo state when is checked
  };  
$scope.clearCompleted = function($scope.todos){
    $scope.todos.$remove($scope.todo.done);
  };
 $scope.clearCompleted = function(){ $scope.todos.forEach(function(todo){ if(todo.done){ $scope.todos.$remove(todo); } }); };