W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
form 是核心的一個控件。 ng 對 form 這個標(biāo)簽作了包裝。事實上, ng 自己的指令是叫 ng-form 的,區(qū)別在于, form 標(biāo)簽不能嵌套,而使用 ng-form 指令就可以做嵌套的表單了。
form 的行為中依賴它里面的各個輸入控制的狀態(tài)的,在這里,我們主要關(guān)心的是 form 自己的一些方法和屬性。從 ng 的角度來說, form 標(biāo)簽,是一個模板指令,也創(chuàng)建了一個 FormController 的實例。這個實例就提供了相應(yīng)的屬性和方法。同時,它里面的控件也是一個 NgModelController 實例。
很重要的一點, form 的相關(guān)方法要生效,必須為 form 標(biāo)簽指定 name 和 ng-controller ,并且每個控件都要綁定一個變量。 form 和控件的名字,即是 $scope 中的相關(guān)實例的引用變量名。
<form name="test_form" ng-controller="TestCtrl"> <input type="text" name="a" required ng-model="a" /> <span ng-click="see()">{{ test_form.$valid }}</span> </form> angular.module('app', [], angular.noop) .controller('TestCtrl', function($scope){ $scope.see = function(){ console.log($scope.test_form); console.log($scope.test_form.a); } }); angular.bootstrap(document.documentElement, ['app']);
除去對象的方法與屬性, form 這個標(biāo)簽本身有一些動態(tài)類可以使用:
form 對象的屬性有:
其中的 $error 對象包含有所有字段的驗證信息,及對相關(guān)字段的 NgModelController 實例的引用。它的結(jié)構(gòu)是一個對象, key 是失敗信息, required , minlength 之類的, value 是對應(yīng)的字段實例列表。
注意,這里的失敗信息是按序列取的一個。比如,如果一個字段既要求 required ,也要求 minlength ,那么當(dāng)它為空時, $error 中只有 required 的失敗信息。只輸入一個字符之后, required 條件滿足了,才可能有 minlength 這個失敗信息。
<form name="test_form" ng-controller="TestCtrl"> <input type="text" name="a" required ng-model="a" /> <input type="text" name="b" required ng-model="b" ng-minlength="2" /> <span ng-click="see()">{{ test_form.$error }}</span> </form> angular.module('app', [], angular.noop) .controller('TestCtrl', function($scope){ $scope.see = function(){ console.log($scope.test_form.$error); } }); angular.bootstrap(document.documentElement, ['app']);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: