【问题标题】:form control error:ERROR Error: No value accessor for form control with unspecified name attribute表单控件错误:错误错误:没有未指定名称属性的表单控件的值访问器
【发布时间】:2018-03-24 07:13:36
【问题描述】:

在下面的组件中,当组件加载到 angular4 应用程序中时,我不断收到错误消息:

ng:///HeaderModule/HeaderComponent.ngfactory.js:334 ERROR 错误:否 具有未指定名称属性的表单控件的值访问器

我尝试删除 ngModelvalue 属性,但没有任何效果。

我假设问题出在标头 .component.html 上。 下面是html

<!-- Notification area-->
<li class="dropdown">
    <a href="#" data-toggle="dropdown" class="dropdown-toggle" (click)="changeNotificationStatus()">
        <i class="glyphicon glyphicon-bell"></i>
        <span class="visible-xs-inline">Notifications</span>
        <span class="badge badge-sm up bg-danger pull-right-xs" [hidden]="notificationCount<=0" [(ngModel)]="notificationCount"></span>
    </a>
    <div class="dropdown-menu w-xl animated fadeInUp">
</li>

不确定导致问题的原因。 如果有人能指出这个问题,那将会很有帮助。

【问题讨论】:

    标签: forms angular


    【解决方案1】:

    就我而言,这是这样的

    刚刚添加了name="searchInput"

    之前:

     <input type="text" nz-input placeholder="Search Project"
            [(ngModel)]="searchInput" (ngModelChange)="search()">
    

    之后:

    <input type="text" name="searchInput" nz-input placeholder="Search Project"
           [(ngModel)]="searchInput" (ngModelChange)="search()">
    

    【讨论】:

      【解决方案2】:

      如果您尝试将 ngModel 添加到非输入元素,也会出现此错误。确保只将 ngModel 添加到标签中。在我的例子中,我在 HTML select Tag 中添加了一个 ngModel 到 &lt;option&gt; 而不是 &lt;select&gt;

      【讨论】:

      • 我认为写一些如此琐碎的东西作为答案是多么愚蠢,但我注意到我已经做到了,我不小心将 ngModel 放在
      【解决方案3】:

      在 ionic 4 中,我的代码中有此错误:

      <ion-label [name]="num_lable"                                       [(ngModel)]="num_temp[i]"> {{num_temp[i]}}</ion-label>
      

      我将代码更改为: (ngModel 在我的代码中是不必要的)

      <ion-label> {{num_temp[i]}}</ion-label>
      

      现在没有显示错误:)

      【讨论】:

        【解决方案4】:

        使用ngDefaultControl 指令使您的表单具有默认的2way 绑定

        <input type="text" [(ngModel)]="name" ngDefaultControl>
        

        【讨论】:

        • 这解决了我在 IONIC4 中的问题,但我不知道为什么 - 我有另一个应用程序不使用 ngDefaultControl 并且数据绑定很好。
        【解决方案5】:

        如果您忘记为ngModel 指定name属性,则会发出此错误。

        您可以在您的 html 中找到包含错误的以下行:

        <span class="badge badge-sm up bg-danger pull-right-xs" [hidden]="notificationCount<=0" [(ngModel)]="notificationCount"></span>
        

        如您所见,没有name 属性。

        【讨论】:

        • 如果它可以帮助任何人:我在 Ionic 中遇到了这个错误,谷歌让我得到了这个问题/答案。我发现问题是我错误地将 [(ngModel)] 放在了 ion-label 而不是 ion-input 上。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-07
        • 1970-01-01
        • 2021-01-24
        • 1970-01-01
        相关资源
        最近更新 更多