ngbBootstrap DatePicker Конфигурация набора firstDayOfWeek - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь настроить указатель даты ngbBootstrap для использования воскресенья в качестве первого дня недели. Похоже, это должно быть очень просто в соответствии с документами . Я использую NgbBootstrap v1.1.2, но документация в коде совпадает с текущей документацией:

Служба конфигурации для компонента NgbDatepicker. Вы можете добавить эту службу, как правило, в свой корневой компонент и настроить значения его свойств, чтобы обеспечить значения по умолчанию для всех средств выбора даты, используемых в приложении.

import { NgbDatepickerConfig } from '@ng-bootstrap/ng-bootstrap';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
  //...

  constructor(
    private ngbDatepickerConfig: NgbDatepickerConfig
  ) {
    ngbDatepickerConfig.firstDayOfWeek = 7;
  }

  //...
}

Есть идеи, почему до понедельника?

Обновление

Кажется, работает, если я переопределяю настройки сервиса по умолчанию:

{
  provide: NgbDatepickerConfig,
  useClass: class Test {
    dayTemplate: TemplateRef<DayTemplateContext>;
    dayTemplateData: (date: NgbDateStruct, current: { year: number, month: number }) => any;
    footerTemplate: TemplateRef<any>;
    displayMonths = 1;
    firstDayOfWeek = 7;
    markDisabled: (date: NgbDateStruct, current: { year: number, month: number }) => boolean;
    minDate: NgbDateStruct;
    maxDate: NgbDateStruct;
    navigation: 'select' | 'arrows' | 'none' = 'select';
    outsideDays: 'visible' | 'collapsed' | 'hidden' = 'visible';
    showWeekdays = true;
    showWeekNumbers = false;
    startDate: { year: number, month: number };
  }
}

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Мой способ сделать это

1.-Создать класс datePicker-config (это простой класс TypeScript)

import {NgbDatepickerConfig} from '@ng-bootstrap/ng-bootstrap';

export class CustomDatePickerConfig extends NgbDatepickerConfig {
    firstDayOfWeek=3;
}

2. - Используйте этот класс в качестве поставщика NgbDatepickerConfig в ваших модулях

@NgModule({
  imports: [...],
  declarations: [...],
  providers:[{provide: NgbDatepickerConfig,useClass: CustomDatePickerConfig}]
  ...
})
0 голосов
/ 03 ноября 2018

Не знаю почему, но он не работает с корневым компонентом, когда все дочерние компоненты загружены с отложенной загрузкой. Я применил его к общему компоненту, используемому в качестве родительского для всех дочерних объектов маршрута функционального модуля, и он работает во всем приложении, как и ожидалось.

...