【问题标题】:Angular4 - Datepicker not working in ng build --prodAngular4 - Datepicker 在 ng build --prod 中不起作用
【发布时间】:2017-10-13 20:30:46
【问题描述】:

我正在开发一个在 Spring boot + Angular4 上运行的项目。我使用 Angular 材质日期选择器组件(来自官方 Angular 材质站点)

当我运行 ng serve 时,一切正常,我可以毫无问题地选择日期并绑定到 Date 属性。

但是当我尝试生产版本(使用ng build --prodng serve --prod )时,我的日期选择器不起作用,看起来像 this

控制台说 (full error)

`Cannot convert undefined or null to object
at new DateTimeFormat (native)`

我的代码:

<md-input-container>
    <input mdInput  (keypress)="$event.preventDefault()" (click)="dateTo.open()" [(ngModel)]="dateToValue" [mdDatepicker]="dateTo" placeholder="To">
    <md-datepicker-toggle mdSuffix [for]="dateTo"></md-datepicker-toggle>
</md-input-container>
<md-datepicker #dateTo ></md-datepicker>

我的app.module.ts

import { MaterialModule, MdDialogModule, MdDatepickerModule, MdNativeDateModule, MdInputModule } from '@angular/material';

我使用@angular/material@2.0.0-beta.8。和@angular/cdk@2.0.0-beta.8。

我尝试安装更新版本 (@2.0.0-beta.12) 并按照官方 GitHub 站点示例和重大更改更改代码,但仍然相同。 我也试过没有 ngModel 属性,在许多浏览器中运行但没有任何改变。我只是不明白为什么--prod 会导致我的日期选择器崩溃并且在ng serve 中工作正常

【问题讨论】:

  • 感谢您的回复,但我认为这并不能解决我当前的问题,因为我对生产构建没有任何问题。它通过没有任何错误,但运行应用程序中的日期选择器不起作用

标签: angular npm datepicker angular-material2 production


【解决方案1】:

所以,经过许多小时后,我终于找到了解决问题的方法!

我再次安装了最新版本的@angular/material@2.0.0-beta.12,所要做的就是将这些代码行插入到您的MaterialComponents.module(或您的具体姓名)中:

export class MaterialComponentsModule {
  constructor(private dateAdapter: DateAdapter<Date>) {
    dateAdapter.setLocale("sk-SK");
  }
 }

在我看来,在开发版本中没有必要因为默认插入一些值,但在生产版本中没有发生。也许这可能是由于使用ngx-translate 库而没有设置默认语言或其他原因造成的。

但是现在,一切都按预期进行:)

【讨论】:

  • @Michal Falat - 我有同样的问题。您的 MaterialComponents.module 是您创建的文件吗?我在整个项目中都没有看到该文件。
猜你喜欢
  • 2018-03-30
  • 2018-07-27
  • 1970-01-01
  • 2018-06-17
  • 2017-08-19
  • 2021-07-07
  • 1970-01-01
  • 2017-12-28
  • 1970-01-01
相关资源
最近更新 更多