• 技术文章 >web前端 >js教程

    在AngularJS中如何动态添加数据并删除?

    亚连亚连2018-06-04 11:14:33原创858
    下面我就为大家分享一篇AngularJS动态添加数据并删除的实例,具有很好的参考价值,希望对大家有所帮助。

    如下所示:

    <!DOCTYPE html>
    <html lang="en" ng-app="App">
    <head>
    	<meta charset="UTF-8">
    	<title>TodoList</title>
    	<style>
    		body {
    			padding: 0;
    			margin: 0;
    		}
    		.todo {
    			width: 300px;
    			margin: 100px auto;
    		}
    		.todo dd {
    			overflow: hidden;
    		}
    		.todo input[type="checkbox"] {
    			float: left;
    		}
    		.todo a {
    			float: right;
    		}
    	</style>
    </head>
    <body>
    	
    	<p class="todo" ng-controller="TodoListController">
    		<form ng-submit="addItem()">
    			<label for="">添加事项</label>
    			<input type="text" ng-model="todo">
    		</form>
    		<dl>
    			<dt>待办事项</dt>
    			<dd ng-repeat="todo in todos track by $index">
    				<input type="checkbox" ng-checked="todo.checked" ng-click="done($index, $event)">
    				{{todo.text}}
    				<a ng-href="" ng-click=" rel="external nofollow" rel="external nofollow" delete($index, todos)">删除</a>
    			</dd>
    			<dt>已办事项{{doneTodos.length}}</dt>
    			<dd ng-repeat="todo in doneTodos track by $index">
    				<input type="checkbox" ng-checked="todo.checked" ng-click="undone($index, $event)">
    				{{todo.text}}
    				<a ng-href="" ng-click=" rel="external nofollow" rel="external nofollow" delete($index, doneTodos)">删除</a>
    			</dd>
    		</dl>
    	</p>
    	<script src="./libs/angular.min.js"></script>
    	<script>
    		// 定义一个模块
    		var App = angular.module('App', []);
    		// 定义一个控制器
    		App.controller('TodoListController', ['$scope', function($scope) {
    			
    			// 待办事项
    			$scope.todos = [];
    			// 已完成事项
    			$scope.doneTodos = [];
    			// $scope.todo = '';
    			// 回车时调用ng-submit,往待办事项中添加数据
    			$scope.addItem = function () {
    				// 向数组中添加数据
    				$scope.todos.push({text:$scope.todo, checked: false});
    				// 清空输入框
    				$scope.todo = '';
    			}
    			// 勾选时完成
    			$scope.done = function (index, ev) {
    				// console.log(index);
    				// console.log($scope.todos);
    				// 从待办事项中删除
    				var tmp = $scope.todos.splice(index, 1);
    				tmp[0].checked = !tmp[0].checked;
    				// 将删除的事项添加到已完成里
    				$scope.doneTodos = $scope.doneTodos.concat(tmp);
    				ev.preventDefault();
    			}
    			// 取消已完成
    			$scope.undone = function (index, ev) {
    				// 从已完成数据中删除
    				var tmp = $scope.doneTodos.splice(index, 1);
    				tmp[0].checked = !tmp[0].checked;
    				// 将事项添加到待办事项中
    				$scope.todos = $scope.todos.concat(tmp);
    				// ev.preventDefault();
    			}
    			// 删除事项,传递当前索引和完整数据
    			$scope.delete = function (index, todos) {
    				// $scope.doneTodos.splice(index, 1);
    				// console.log(todos);
    				// 删除索引值对应的事项
    				todos.splice(index, 1);
    			}
    		}])
    		// var arr = [0, 1, 2, 3, 4];
    		// arr.splice(2,1)
    	</script>
    </body>
    </html>

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    详细讲解FastClick源码(详细教程)

    利用vue和element-ui如何实现表格内容分页

    利用vue如何实现将时间戳转换成自定义时间格式

    以上就是在AngularJS中如何动态添加数据并删除?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:javascript AngularJS 数据
    上一篇:如何访问JS的对象属性与方法 下一篇:如何使用Zepto tap事件的穿透与点透(附代码)
    大前端线上培训班

    相关文章推荐

    • javascript怎么设置p的值• javascript如何获取当前方法名• JavaScript中数组如何遍历• javascript怎么将字符转换成数字• javascript es6数组方法有哪些

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网