我正在阅读 ng-form 的 Angular 文档,它说
形式 - 模块 ng 中的指令 实例化 FormController 的指令。
听上去很好。 但是,当我查看示例时,它显示了如下所示的内容:
<form name="myForm" ng-controller="FormController" class="my-form">
指定的ngController
FormController
是否与表单自动实例化的相同?
谢谢。
它们是两个不同的控制器。
通过ng-controller
声明的控制器允许您将数据绑定到控制器的作用域或控制器中的表单对象。
.HTML:
{{userType}}
<input ng-model="myForm.userType" />
控制器:
$scope.userType = 'guest';
$scope.myForm.userType = 'guest';
FormController 通过 $isDirty、$setPristine 等方法控制表单的状态,并为您维护表单的行为,而无需您这样做。
.HTML:
{{myForm.$isDirty()}}
控制器:
$scope.myForm.$setPristine();
请注意,在文档的第一个实例中,userType 是直接引用的,因为它位于受 ng-controller
约束的任何控制器的范围内。 在第二个实例中,我们引用表单对象本身的作用域,myForm
,它在后台自动绑定到控制器作用域。
不,再次查看文档:)它只是一个模拟数据控制器:
angular.module('formExample', [])
.controller('FormController', ['$scope', function($scope) {
$scope.userType = 'guest';
}]);