一个AngularJS表单是一组输入型控件的集合。
HTML控件
HTML输入型标签标包括:
- input标签
- select标签
- button标签
- textarea标签
HTML表单
HTML表单将各种HTML控件组合到一起。
一个AngularJS表单的例子
程序代码
<div ng-app="myApp" ng-controller="formCtrl">
<form novalidate>
First Name:<br>
<input type="text" ng-model="user.firstName"><br>
Last Name:<br>
<input type="text" ng-model="user.lastName">
<br><br>
<button ng-click="reset()">RESET</button>
</form>
<p>form = {{user}}</p>
<p>master = {{master}}</p>
</div> <script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
$scope.master = {firstName: "John", lastName: "Doe"};
$scope.reset = function() {
$scope.user = angular.copy($scope.master);
};
$scope.reset();
});
</script>
novalidate是HTML5中新加入的一个属性,表示禁用浏览器默认的验证功能。 |
代码解释
ng-app指令定义了AngularJS application。
ng-controller指令定义了application的控制器。
ng-model指令将两个input标签绑定到模型的user对象上。
在控制器formCtrl中,设置了master对象的初始值,并且定义了reset()方法。
reset()方法将master对象复制给user对象。
当button被点击时,ng-click指令调用了reset()方法。
这里,application中并不需要novalidate属性,不过在AngularJS表单中你通常需要使用它来覆盖HTML5自带的验证功能。