Angularjs - 如何获得ng消息所需的错误,以同时显示和禁用输入按钮
我想要一个错误消息出现,如果用户点击提交没有内容,我想提交按钮被禁用。 我可以让任一人工作,但不能同时工作。Angularjs - 如何获得ng消息所需的错误,以同时显示和禁用输入按钮
下面的代码会显示消息,但允许空的待办事项。
<form name="todoForm" novalidate >
<div ng-messages="todoForm.new.$error" ng-if="todoForm.$submitted"><div ng-message="required">Add Your Item Below...</div></div><!--message appears until valid input is entered-->
<input type="text" name="new" placeholder="start typing..." autofocus data-ng-model="newTodo" required=""/>
<button input type="submit" ng-click="addTodo()" >Add To List</button><!--disables form if form not valid-->
</form>
该版本禁用提交按钮,但不弹出消息
<form name="todoForm" novalidate >
<div ng-messages="todoForm.new.$error" ng-if="todoForm.$submitted"><div ng-message="required">Add Your Item Below...</div></div><!--message appears until valid input is entered-->
<input type="text" name="new" placeholder="start typing..." autofocus data-ng-model="newTodo" required=""/>
<button input type="submit" ng-click="addTodo()" data-ng-disabled="todoForm.$invalid" >Add To List</button>
</form>
我相信这是因为无法显示该消息时,输入按钮被禁用,因为什么也没有提交?
我试过使用$禁用和$无效,而不是他们没有工作。
我删除了冲突的ng-if在ng-message元素上。这是一个显示固定代码的工作。
http://plnkr.co/edit/gL0GoFT47mSeydKReLuD
我的假设是,你忘了注入“ngMessages”模块作为外部的依赖。
您可以修复你的代码是这样的:
var app = angular.module('plunker', ['ngMessages']);
谢谢,但我不希望消息在页面加载时出现,只是当用户提交而不输入任何内容时。我知道我有ngMessage的工作,因为我可以这样工作, – vtechmonkey
您可以使用$ dirty来做到这一点,我已经更新了plunk以反映这种变化。 –
如果用户没有输入任何内容,则不起作用,只需点击提交即可。 – vtechmonkey
除非我失去了一些东西,我从这个得到的是'NG-IF ='“todoForm提交$。”是'NG-发生冲突messages =“todoForm.new。$ error”'。即在同一个div上出现'ng-if',我看不到显示“ng-message =”需要的文本。当我删除'ng-if'时,所需的信息显示出来:http://plnkr.co/edit/8pE3jmBNYRpPSvyJA0ys?p=preview –
ng-if =“todoForm。$ submitted”与data-ng-disabled = “todo.Form。$ invalid”据我所知。你的例子没有生成ng消息,是不是html5消息? – vtechmonkey