Angular - 是由ng-controller覆盖的FormController吗?

时间:2015-09-09 16:46:04

标签: javascript angularjs forms

我正在阅读ng-form的Angular文档,并说

  

形式    - 模块ng指令实例化FormController的指令。

听起来不错。但是,当我查看example时,它会显示如下内容:

<form name="myForm" ng-controller="FormController" class="my-form">

ngController - 指定FormController是否与表单自动实例化的相同?

谢谢。

2 个答案:

答案 0 :(得分:1)

他们是两个不同的控制者。

通过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,它在后台自动绑定到您的控制器范围。

答案 1 :(得分:0)

不,再看看文档:)它只是一个模拟数据控制器:

angular.module('formExample', [])
  .controller('FormController', ['$scope', function($scope) {
    $scope.userType = 'guest';
  }]);