2017-06-12 162 views
0

我有一段代碼上的angularjs ng消息似乎無法正常工作。ng消息似乎並不工作

這裏是一個JSfiddle

<div ng-app="app" ng-controller="myctrl"> 
     <form name="myform" novalidate> 
     error: {{myform.definition.$error}} 
     <textarea ng-blur="handleBlur(myform)" 
       name="definition" 
       ng-model="$ctrl.definition" 
       ng-blur="$ctrl.handleBlur(myform)"> 
     </textarea> 
     <div ng-messages="myform.definition.$error"> 
     <div ng-message="validationError"> 
      Please enter a value for this field. 
     </div> 
     </div> 
    </form> 
</div> 

控制器:

angular.module('app', []).controller('myctrl', function($scope) { 
    $scope.someval = true; 
    $scope.handleBlur = function(form) { 
    form.definition.$error.validationError = false; 
    $scope.someval = !$scope.someval 
    form.definition.$error['validationError'] = $scope.someval; 
    } 
}) 
+0

什麼錯誤您遇到?提供這將使StackOverflow社區更好地回答你的問題 –

回答

0

從文檔,https://docs.angularjs.org/api/ngMessages#dynamic-messaging

隨意使用其它結構指令,例如NG-如果和 納克 - 進一步控制哪些消息處於活動狀態以及何時進行。小心,如果您將ng消息放置在與這些 結構性指令相同的元素上,AngularJS可能無法確定消息是否處於活動狀態。因此,最好將ng消息 放置在結構指令的子元素上。

來源:

<div ng-messages="myform.definition.$error"> 
    <div ng-message="validationError"> 
     Please enter a value for this field. 
    </div> 
    </div> 

要:

<div ng-messages="myform.definition.$error"> 
    <div ng-if="showRequiredError"> 
     <div ng-message="validationError"> 
     Please enter a value for this field. 
     </div> 
    </div> 
    </div> 
+0

ng-if看起來很有前途,但我仍然只想用ng-messsage來完成任務並想知道爲什麼它不起作用 –

+0

現在要放棄角度還不算太遲;) – xandercoded