Javascript 如何基于属性:键值删除Firebase对象?
我刚从AngularJs和Firebase开始。我正在创建待办事项列表应用程序 在我的应用程序中,我有这样一个html表单: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
<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); } }); };