Angular4 - Datepicker在ng build --prod中不起作用

时间:2017-10-11 16:29:07

标签: angular npm datepicker angular-material2 production

我正在开发一个在Spring boot + Angular4上运行的项目。我使用Angular材料datepicker组件(来自官方角材料网站)

当我运行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中正常工作

1 个答案:

答案 0 :(得分:1)

所以最后经过很多个小时我找到了解决问题的方法!

我再次安装了@ angular / material @ 2.0.0-beta.12的最新版本,所有必须做的就是在MaterialComponents.module(或您的特定名称)中插入这些代码行:< / p>

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

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

但现在,一切都按预期工作了:)