Как установить первый день недели с использованием материала 2?
В настоящее время по умолчанию используется воскресенье, даже если я устанавливаю язык в hu или что-то еще.
Как установить первый день недели с использованием материала 2?
В настоящее время по умолчанию используется воскресенье, даже если я устанавливаю язык в hu или что-то еще.
Обнаружено обходное решение:
Напишите этот класс
import {NativeDateAdapter} from '@angular/material';
import {Injectable} from '@angular/core';
@Injectable()
export class MyDateAdapter extends NativeDateAdapter {
getFirstDayOfWeek(): number {
return 1;
}
}
Затем импортируйте в app.module, например:
{provide: DateAdapter, useClass: MyDateAdapter},
В общем, тот же ответ, что и у Бела, но мне пришлось реализовать конструктор, чтобы он заработал.
import { NativeDateAdapter } from '@angular/material';
import { Injectable } from '@angular/core';
import { Platform } from '@angular/cdk/platform';
@Injectable()
export class SwedishDateAdapter extends NativeDateAdapter {
constructor() {
super('sv-SE', new Platform());
}
getFirstDayOfWeek(): number {
return 1;
}
}
constructor(
private dateAdapter: DateAdapter<Date>
) { }
ngOnInit() {
this.dateAdapter.setLocale('es');
this.dateAdapter.getFirstDayOfWeek = () => { return 1; }
}
В настоящее время я использую Angular 6 с соответствующей версией материала.
Приведенные выше решения работали, однако, так как я использовал адаптер moment.js, приложение перестало работать правильно.
Использование кода по адресу https://github.com/angular/material2/blob/master/src/material-moment-adapter/adapter/moment-date-adapter.ts и внедрение его в модуль заставили приложение определить правильный регион и установите начальный день на понедельник (мой был pt-pt).
Единственное, что нужно было сделать, это установить правильный момент импорта.
Просто добавьте к вам app.module.ts следующее:
providers: [
{ provide: LOCALE_ID, useValue: 'en-GB' }
],