2017-06-12 138 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