Javascript AngularJS 1.5.6重置表格和;ng消息

Javascript AngularJS 1.5.6重置表格和;ng消息,javascript,angularjs,angular-material,Javascript,Angularjs,Angular Material,我读了一些Stackoverflow的帖子如何重置表单,但我不明白。 输入有效,但显示了错误消息。调试应用程序时,我发现消息会显示一个style=“opacity:1;margin top:0px;”,但我不知道从何处开始 <md-input-container flex style="margin-top: 0;margin-bottom: 5px"> <label translate>maintenanceMessage.description</lab

我读了一些Stackoverflow的帖子如何重置表单,但我不明白。 输入有效,但显示了错误消息。调试应用程序时,我发现消息会显示一个style=“opacity:1;margin top:0px;”,但我不知道从何处开始

<md-input-container flex style="margin-top: 0;margin-bottom: 5px">
    <label translate>maintenanceMessage.description</label>
    <input md-maxlength="40" required name="description" md-no-asterisk
           ng-model="maintenanceMessageCtrl.newMaintenanceMessage.description" flex>
    <div ng-messages="maintenanceMessageForm.description.$error" ng-if="maintenanceMessageForm.description.$touched">
      <div ng-message="required" translate>maintenanceMessage.description.requiredMessage</div>
      <div ng-message="md-maxlength" translate>maintenanceMessage.description.maxLengthMessage</div>
    </div>
  </md-input-container>
我错过什么了吗

谢谢你的帮助


结论
似乎angular material 1.1.1有一个bug。所以这条消息并没有被隐藏

我已经把你的相关标记和代码放进了一个代码笔,看起来很好-

唯一奇怪的是,表单重置时字符计数没有设置为0

加价

<div ng-controller="AppCtrl" ng-cloak="" ng-app="MyApp">
   <form name="maintenanceMessageForm">
    <md-input-container flex style="margin-top: 0;margin-bottom: 5px">
      <label>maintenanceMessage.description</label>
      <input md-maxlength="40" required name="description" md-no-asterisk ng-model="newMaintenanceMessage.description" flex>
      <div ng-messages="maintenanceMessageForm.description.$error" ng-if="maintenanceMessageForm.description.$touched">
        <div ng-message="required">{{maintenanceMessage.description.requiredMessage}}</div>
        <div ng-message="md-maxlength">{{maintenanceMessage.description.maxLengthMessage</div>
      </div>
    </md-input-container>
  </form>
  <md-button class="md-raised md-primary" ng-click="resetForm()">Reset</md-button>
</div>

谢谢,我把你们样品中的版本改成了angular 1.5.8和angular material 1.1.1。现在出现了错误。我在使用AngularMaterial 1.1.1和angularJS 1.5.8时遇到了一个非常类似的问题。你能告诉我你最后使用的是哪种解决方案吗?问题是ng animate,你可以在这里看到降级到不同的版本或包括一些其他修复谢谢!降级对我来说不起作用,但有一个变通办法起了作用:)
<div ng-controller="AppCtrl" ng-cloak="" ng-app="MyApp">
   <form name="maintenanceMessageForm">
    <md-input-container flex style="margin-top: 0;margin-bottom: 5px">
      <label>maintenanceMessage.description</label>
      <input md-maxlength="40" required name="description" md-no-asterisk ng-model="newMaintenanceMessage.description" flex>
      <div ng-messages="maintenanceMessageForm.description.$error" ng-if="maintenanceMessageForm.description.$touched">
        <div ng-message="required">{{maintenanceMessage.description.requiredMessage}}</div>
        <div ng-message="md-maxlength">{{maintenanceMessage.description.maxLengthMessage</div>
      </div>
    </md-input-container>
  </form>
  <md-button class="md-raised md-primary" ng-click="resetForm()">Reset</md-button>
</div>
angular.module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache', 'ngDialog'])

.controller('AppCtrl', function($scope) {
  $scope.maintenanceMessage = {
    description: {
      requiredMessage: "This is required",
      maxLengthMessage: "Max length is 40"
    }
  };

  $scope.resetForm = function () {
    $scope.newMaintenanceMessage = {};
    $scope.maintenanceMessageForm.$setUntouched();
    $scope.maintenanceMessageForm.$setPristine();
  };
});