gpt4 book ai didi

javascript - 即使 ng-required=false 使用自定义输入指令,也需要设置 Angular Form Validation : $error.

转载 作者:可可西里 更新时间:2023-11-01 13:48:18 27 4
gpt4 key购买 nike

我有Custom input component with validationngMessages , FormController和 ng-required:

<div class="col-sm-9 col-xs-12">
<input
id="{{$ctrl.fieldName}}"
name="{{$ctrl.fieldName}}"
class="form-control"
type="text"
minlength="{{$ctrl.minLength}}"
maxlength="{{$ctrl.maxLength}}"
ng-required="{{$ctrl.isRequired === 'true'}}"
ng-model="$ctrl.value"
ng-change="$ctrl.form.$submitted = false;"
>
<div
ng-messages="$ctrl.form[$ctrl.fieldName].$error"
ng-if="$ctrl.form.$submitted"
>
<span class="help-block" ng-message="required">
Field is required
</span>
<span class="help-block" ng-message="minlength">
Minimum length of field: {{$ctrl.minLength}}
</span>
<span class="help-block" ng-message="maxlength">
Maximum length of field: {{$ctrl.maxLength}}
</span>
</div>
</div>

这样使用的:

<act-text-field 
form="heroAddForm"
field-name="name"
min-length="3"
max-length="15"
is-required="true"
errors="$ctrl.errors.name"
ng-model="$ctrl.hero.name">
</act-text-field>

我想要实现的是当用户单击 submit 按钮时触发验证。它有效,验证也会触发必填字段 name,但也会触发不需要的字段 description:

<act-text-field 
form="heroAddForm"
field-name="description"
max-length="50"
is-required="false"
errors="$ctrl.errors.description"
ng-model="$ctrl.hero.description"
></act-text-field>

虽然字段 description 有效,但此字段的验证消息也是可见的,因为我将类 has-error 添加到无效字段:

<div class="form-group"
ng-class="{'has-error': $ctrl.form.$submitted && (!$ctrl.form[$ctrl.fieldName].$valid)}"
>
<!-- rest of code -->

您可以在我的 Plunker: Custom input demo app with validation states 中轻松重现此错误行为(我知道它还有其他错误)。我认为 ng-message="required" 不应该是可见的,因为字段 description 不是必需的。我知道我可以在代码中添加一些 ng-if 来绕过它,但我认为我在某个地方犯了一个我看不到的错误。你看到我哪里弄错了吗?提前感谢您的帮助。

最佳答案

我找到了解决方案,again I forgot to include ngMessages .没有它,我的代码就疯了,我很抱歉浪费了你的时间:)

关于javascript - 即使 ng-required=false 使用自定义输入指令,也需要设置 Angular Form Validation : $error.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38816023/

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