我正在开发一个在Spring boot + Angular4上运行的项目。我使用Angular材料datepicker组件(来自官方角材料网站)
当我运行ng serve
时一切正常我可以选择日期并绑定到Date属性而没有任何问题。
但是当我尝试生产版本(使用ng build --prod
和ng 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
中正常工作
答案 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
库而没有设置默认语言或其他原因。
但现在,一切都按预期工作了:)