gpt4 book ai didi

javascript - $error.required 或(原始值和空值)上的 Angular 要求消息

转载 作者:行者123 更新时间:2023-12-01 17:50:36 25 4
gpt4 key购买 nike

我到处都在寻找解决方案,所以这是我对这个网站的第一个问题:

我正在尝试在 Angular ( ionic )页面中进行一些很好的验证,其中的逻辑是我想在出现验证错误时在标签下显示“Required”消息( $error.required) 或该字段未被触及且为空(如第一次加载)。我可以使用 pristine 来检查它是否未被修改,但是如果表单随后从模型加载值(比如从 localstorage 恢复时),它仍然显示“required”验证消息。

我尝试了以下方法:

<form name="wdform" novalidate>
<label class="item item-input item-stacked-label">
<span class="input-label green-small">ID</span>
<div class="validation" ng-show="wdform.userid.$error.required ||
(wdform.userid.$pristine && wdform.userid.length < 1)" >
Required
</div>
<input name="userid" ng-model="input.UserID" type="text" required>
</label>
... rest of form...
</form>
也试过:

<div class="validation" ng-show="wdform.userid.$error.required ||
(wdform.userid.$pristine && input.UserID.length < 1)" >

以及各种其他排列,例如:

(wdform.userid.$pristine && input.UserID == '')

(wdform.userid.$pristine && wdform.userid.$invalid)

etc. ad nauseum.

在一个单独但相关的说明中,我还发现内置验证在涉及表单和字段名称时非常脆弱......它似乎只有在表单名称仅为小写和/或不包含特殊字符(“DumbForm”和“dumb-form”失败,但“smartform”有效)。

无论如何,有人有什么想法吗?

最佳答案

我觉得你的两个场景,(1) $error.required 和 (2) 原始和空的,可能是多余的。任何时候#2 为真,#1 也为真。我想你可以只使用#1。

看这个例子: http://plnkr.co/edit/PgQ3vEIOKkfA38dDWjhp?p=preview

<body ng-controller="myController as vm">
<h1>Hello Plunker!</h1>
<form name="wdform">
<input type="text" name="userid" ng-model="userId" required/>
<div ng-show="wdform.userid.$error.required">Required</div>
</form>
</body>

但是,听起来您有时是在从 localStorage 加载页面时填充表单,不知何故这不会导致 $error.required 属性更改为 true,但它应该。所以我认为你真正的问题在于需要调用 $scope.$apply() 或其他东西来告诉 Angular 再次运行验证。

关于javascript - $error.required 或(原始值和空值)上的 Angular 要求消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33352847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com