我试图在
Angularjs中编写一个todo应用程序,代码如下.
function write_controller($scope){ $scope.todos = [{text:'hey all',done:false},{text:'hello',done:false}]; $scope.addtodo = function(){ $scope.todos.push({text:$scope.todopush,done:false}); $scope.todopush = ''; } $scope.delete = function(){ var oldtodos = $scope.todos; $scope.todos = []; angular.forEach(oldtodos,function(x){ if (!x.done){ $scope.todos.push(x);} }); }; }
<html ng-app> <head> <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"> </script> </head> <body> <div class = "basic_class" ng-controller = "write_controller"> <ul> <li ng-repeat = "todo in todos"><input type = "checkBox" ng-model ="todo.done">{{todo.text}}</input></li> </ul> <input type = "text" placeholder = "please add data here" ng-model="todopush"> </input> <input type = "button" ng-click ="addtodo()" value ="Click me!!"></input> <input type = "button" ng-click = "delete()" ng-model="remove" value = "remove!"></input> </div> </body> </html>
我的理解:
1)它将现有数组推送到新数组中
2)它清除exisitng数组
3)迭代新数组
3)检查完成的功能??? (当它说!x.done时,是真还是假???)
任何帮助将受到高度赞赏.
解决方法
走过台阶
$scope.delete = function() { // store existing todos array in variable var oldtodos = $scope.todos; // create new empty array for todos $scope.todos = []; // loop over prevIoUsly stored todos angular.forEach(oldtodos,function(x) {//x is element of the array - a single todo object // if x.done is not truthy if (!x.done){ // push this item into `$scope.todos` $scope.todos.push(x); }); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。