在Angular 5中,表单控件未指定名称属性的值访问器为空。

3

HTML代码

<li class="dropdownfilter" *ngIf="this.arr.inclues('Male')" (click)="getValueGender('Male',1,)" [(ngModel)]="M"><a>Male</a></li>

我遇到了下面这个异常:
ERROR Error: No value accessor for form control with unspecified name attribute

所以我已经添加了。
<li class="dropdownfilter" name="gendermale" *ngIf="this.arr.inclues('Male')" (click)="getValueGender('Male',1,)" [(ngModel)]="M"><a>Male</a></li>

现在面临以下异常

ERROR Error: No value accessor for form control with name: 'gendermale'

我在我的代码中的许多地方都遇到了这个异常。

<div class="col-sm-8 col-xs-8 contact">
    <input  id="passphn{{bus.busServiceId}}" (keyup)="onKeyPress($event)" class="form-control contact-number" type="text" [(ngModel)]="contactNumber" name="contact-number" placeholder="Phone" required pattern="(?<!\d)\d{10}(?!\d)" minlength="10" maxlength="10" />
    <div class="shake-tooltip-web-mobile" *ngIf="webMobileError != ''">{{webMobileError}}</div> <!-- Facing the same exception here -->
</div>

<div class="panel-body" *ngIf="dropingView == 'show'"> <!-- Here too -->

1
我认为你不能使用[(ngModel)]指令,因为它不是一个表单元素。 - user184994
我在我的输入标签中使用了ngModel。有些在<form>里,有些则不在。 - Krishna
3
但这些不是input标签,它们是li标签,这就是为什么它无法工作的原因。由于li没有值,所以您无法绑定到值属性(这就是ngModel的作用), - user184994
请查看我编辑过的问题,我遇到了同样的情况,即使是 div 标签也是如此。 - Krishna
4
如果您在非表单控件上使用ngModel指令,那么可能会导致该错误。它必须仅用于像inputselect这样的控件上。 - user184994
显示剩余5条评论
1个回答

0

首先,在HTML中无法使用this.x进行访问。

<li class="dropdownfilter" *ngIf="arr.inclues('Male')" (click)="getValueGender('Male',1)"><a>Male</a></li>

其次,li标签没有name属性,也不支持[(ngModel)],因为它需要value属性。ngModel是一个Angular内置指令。双向绑定使用的语法是[()],属性绑定使用的语法是[],事件绑定使用的语法是圆括号()。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接