0

我是初學者使用AngalurJs和材料AngalurJs
我需要解決一個小問題
我需要隱藏的錯誤消息,當用戶點擊復位按鈕
我試過$setUntouched$setPristine
更改狀態的輸入,但不能掩蓋消息
我也試過ng-ifng-show和不工作
HTML代碼,我用了NG的消息:隱藏NG-消息

<div ng-messages="formName.fieldName.$error"> 
    <div ng-message="required">...</div> 
</div> 

而對於復位形式的js代碼:

<button ng-click="onclear">Clear</button> 

// on controller js file code : 
$scope.onclear = function(){ 
    $scope.formName.$setUntouched(); 
    $scope.formName.$setPristine(); 
} 

回答

1

因此,這裏是我看到可能存在的問題:

要調用的函數,你需要使用括號onclear

<button ng-click="onclear()">Clear</button> 

如果某個字段出現'required'錯誤,則下面的代碼將始終顯示消息,字段是否被觸摸,是否變髒:

<div ng-messages="formName.fieldName.$error"> 
    <div ng-message="required">...</div> 
</div> 

要隱藏基於$touched$dirty的消息,可以使用這樣的事情:

<div ng-messages="formName.fieldName.$error" 
    ng-show="formName.fieldName.$dirty && formName.fieldName.$touched"> 
    <div ng-message="required">...</div> 
</div> 

另外,還要確保你包括angular-messages.js文件:

<head> 
    <!-- include angular and whatever --> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-messages.js"></script> 
    <!-- ... --> 
</head> 

而且您添加'ngMessages'到創建應用程序模塊時角度依賴關係列表:

angular.module('app', ['ngMessages']); 

如果你不這樣做最後的兩件事情,ng-messageng-messages屬性將沒有任何效果,所有的div元素將被顯示領域無關的錯誤(除非該ng-show我添加隱藏)。

退房這個例子中,我提出:https://plnkr.co/edit/fuqsr6WRdBKoebPq1Igs?p=preview

在我綁定值到控制器,而不是$範圍的例子,這就是爲什麼你會看到$ctrl,希望不會混淆你。