【问题标题】:ngModel doesn't work properly in Angular 4ngModel 在 Angular 4 中无法正常工作
【发布时间】:2018-03-05 13:30:31
【问题描述】:

我遇到了ngModel 指令的问题。我有一个input<td><input type="text" ([ngModel])="desc"></td>,其中我将input 的值分配给名为desc 的变量。然后在component 我只想通过以下方式在控制台中打印它:

addItem(){
    console.log('=======', this.desc);
  }

addItem() 方法在html 文件中的input 下标贴:

   <td>
            <i
              class="fa fa-plus-square add-button"
              (click)="addItem()">
            </i>
   </td>

我得到的东西是:======= undefined 在控制台中。谁能告诉我为什么我得到这个?在这个应用程序的不同地方,我也在使用ngModel,一切正常

【问题讨论】:

    标签: javascript angular typescript input angular2-ngmodel


    【解决方案1】:

    数据绑定操作符(和[)的语法是错误的,如果你想让双重绑定正常工作,你需要记住著名的句子“盒子里的香蕉”所以你需要写[(ngModel)]它是就像盒子里的香蕉 [()] 。

    有关信息,[ 用于视图到控制器的绑定,而 ( 用于反向。

    【讨论】:

    • 好的,所以我做了一点改动,现在它看起来像:&lt;td&gt;&lt;input type="text" [(ngModel)]="newItem.description"&gt;&lt;/td&gt; 并在component 中创建了一个名为newItem 的新对象。有什么办法可以忽略Cannot read property 'description' of undefined 的问题,因为newItem 中的description 字段从未创建过?
    • 当然可以,但是您必须创建一个包含 newItem 的所有属性的类。假设您的类名为 Item,因此在您的控制器中,您只需实例化该类的一个对象:newItem : Item = new Item();
    猜你喜欢
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多