/ / ng-message ne semble pas fonctionner - javascript, angularjs, angularjs-directive, ng-messages

ng-message ne semble pas fonctionner - javascript, angularjs, angularjs-directive, ng-messages

J'ai un morceau de code sur lequel angularjs ng-message ne semble pas fonctionner.

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

manette:

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;
}
})

Réponses:

0 pour la réponse № 1

De la docs, https://docs.angularjs.org/api/ngMessages#dynamic-messaging

N'hésitez pas à utiliser d'autres directives structurelles telles quecomme ng-if et ng-switch pour contrôler davantage quels messages sont actifs et quand. Être Attention, si vous placez ng-message sur le même élément que ceux-ci directives structurelles, AngularJS pourrait ne pas être en mesure de déterminer si le message est actif ou non. Par conséquent, il est préférable de placer le message ng sur un élément enfant de la directive structurelle.

De:

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