Angularjs动态表单项
2014年9月29日 · 106 字 · 1 分钟
后台业务系统中有很多CURD操作,一个很简单的例子是OA系统中为员工添加帐号信息,传统的做法是添加完一个就跳转并提示“成功”,后来高级一点的做法是利用jquery来做。
但是一个比较麻烦的问题是需要手动拼接HTML并且插入文档树。
然而,现在有了跨时代神器–angularjs,就是这么炫,强大的双向绑定功能可以帮到我们。
整体思想是利用 ng-repeat 指令来遍历一个临时数组(元素个数为表单个数)生成表单
HTML代码
<!DOCTYPE html>
<html ng-app="application.site">
<head>
<meta charset="UTF-8"/>
<title>Login</title>
</head>
<body>
<div ng-controller="ListCtrl">
<button type="button" ng-click="add()">添加表单</button>
<form action="" method="post" class="form" ng-repeat="form in forms" novalidate="novalidate">
<p> 号表单</p>
<label for="username">帐号</label>
<input type="text" ng-model="username" id="username" ng-required="true"/>
<button type="submit" ng-click="post($index,username)">提交</button>
<button type="button" ng-click="remove($index)">移除</button>
</form>
</div>
<script src="js/angularjs-1.2.19.js"></script>
JS代码
var site = angular.module('application.site', []);
site.controller('ListCtrl', ['$scope', '$http',
function($scope, $http) {
$scope.forms = ["1"];
$scope.index = 1;
$scope.post = function(index, username) {
console.log(index + ' 号表单提交 [' + username + '] 成功');
}
$scope.remove = function(index) {
console.log('删除 [' + index + '] 号表单成功');
$scope.forms.splice(index, 1);
}
$scope.add = function() {
console.log('添加表单');
$scope.forms.push((++$scope.index).toString());
}
}]);
由于小编只是为了实现功能而写的这么一个demo,样式至上难免有些欠缺–。但是,麻雀虽小,五脏俱全,大家可以根据这个思路去开发更为强大的应用系统。