Angular 4 - [(ngModel)] 未在生产站点中更新

Angular 4 - [(ngModel)] doesn't update in production site

我在开发 Angular 4 应用程序。我有一个模式,我可以在其中输入供应商信息并创建一个。我有一个城市的 select 框。

  <select class="custom-select form-control" [(ngModel)]="newSupplier.city">
       <option *ngFor="let city of cities" [ngValue]="city">{{city.name}}</option>
  </select>

当我 运行 在本地机器上运行该应用程序时,一切正常。当我 select 一个城市时,newSupplier 变量被更新。但是当我将应用程序部署到 heroku 时,应用程序运行正常,但是当我 select 城市时,newSupplier 变量没有更新。 PS:我在 newSupplier 中还有其他属性,我使用以下输入输入这些属性:

<input class="form-control" type="text" [(ngModel)]="newSupplier.name">

这在我的本地和部署时都有效。

真不知道这个问题是从哪里来的。 感谢您的帮助。

你好,你不需要参考吗?

<input #name="ngModel" class="form-control" type="text" [(ngModel)]="newSupplier.name">

另一种可能是添加(更改)事件处理程序

嗯,你的输入是在 <form> 中吗?如果是,请将 name="supplierCity" 添加到 select 并将 name="supplierName" 添加到输入,因为在这种情况下需要这些。

即。可能是 Heroku 安装的 NG 版本比本地版本高(顺便说一句,您本地安装了最新版本吗?)并在本地版本没有安装的地方崩溃。

话虽如此,我对部署到 heroku 了解不多,只是在这里猜测,因为我知道 missing name attr 错误仅在运行时出现,运行时错误会导致 NgModel 行为怪异,即使页面呈现和所有(虽然应该在控制台中显示错误...)。

尝试以下操作:

Template.html

<select class="custom-select form-control" [(ngModel)]="citySelected">
    <option 
      *ngFor="let city of cities" 
      [ngValue]="city">
        {{city.name}}
    </option>
</select>

然后在您的组件上,将 citySelected 属性设置为 newSupplier.city