ngbBootstrap DatePicker配置集firstDayOfWeek

时间:2018-11-02 22:48:18

标签: angular ng-bootstrap

我正在尝试将ngbBootstrap日期选择器配置为使用星期日作为一周的第一天。根据{{​​3}},似乎这样应该非常简单。我正在使用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 :(得分:0)

不知道为什么,但是当所有子组件都被延迟加载时,它不适用于根组件。我将其应用于作为所有功能模块路由子代的父代的通用组件,并且按预期可在整个应用程序中使用。

答案 1 :(得分:0)

我的方法是

1.-创建一个类datePicker-config(这是TypeScript的简单类)

@NgModule({
  imports: [...],
  declarations: [...],
  providers:[{provide: NgbDatepickerConfig,useClass: CustomDatePickerConfig}]
  ...
})

2 .--在模块的NgbDatepickerConfig提供程序中使用此类

def group(string):

    digits = []
    non_digits = []
    for c in string:
        if c.isdigit():
            digits.append(c)
        else:
            non_digits.append(c)

    return ''.join(non_digits) + ''.join(digits)

result = group('y0b3')

print(result)