【问题标题】:Why does Angular ng-message 'when="required"' fire even though the input field has input?为什么即使输入字段有输入,Angular ng-message 'when="required"' 也会触发?
【发布时间】:2016-04-19 08:20:54
【问题描述】:

我有一个plunker here

当我在输入字段中输入输入并单击页面上的其他位置时,消息“此字段为必填项”。被显示。尽管输入字段有值,为什么仍然显示消息?

代码如下:

<form name="reportform" novalidate >
  <input name="startdate" placeholder="Enter a start date" ng-model="startdatevalue" required>
  <ng-messages ng-if='reportform.startdate.$touched' for="reportform.startdate.$error">
    <ng-message when="required">
      This field is required.
    </ng-message>
  </ng-messages>
  <button ng-disabled="reportform.$invalid" type="submit">
    Submit Query
  </button>
</form>

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    您缺少导入 ngMessages 模块:

    示例:https://plnkr.co/edit/VWhrTIzRjkQBGfjaj5Zb?p=preview

     var app = angular.module('plunker', ['ngMessages']);
    
    app.controller('MainCtrl', function($scope) {
      $scope.name = 'World';
    });
    

    【讨论】:

    • 哦,谢谢。抱歉问了这么愚蠢的问题。我有一个更长的示例,我正在研究并试图将其缩减为作为 plunker 发布的必需品,但显然我删除了太多代码:)
    【解决方案2】:

    这里是updated Demo

    唯一的改变是你需要在你的角度模块中添加依赖ngMessages

     var app = angular.module('plunker', ['ngMessages']);
    
     app.controller('MainCtrl', function($scope) {
     $scope.name = 'World';
     });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-19
      相关资源
      最近更新 更多