繁体   English   中英

ng-message似乎不起作用

[英]ng-message does not seem to work

我有一段代码似乎对angularjs ng-message不起作用。

这是一个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;
  }
})

从文档中https://docs.angularjs.org/api/ngMessages#dynamic-messaging

随意使用其他结构性指令(例如ng-if和ng-switch)进一步控制哪些消息处于活动状态以及何时处于活动状态。 请注意,如果将ng-message放在与这些结构化指令相同的元素上,AngularJS可能无法确定消息是否处于活动状态。 因此,最好将ng-message放在结构指令的子元素上。

从:

  <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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM