You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular5中使用BsDatePicker报错Cannot read property 'schedule' of undefined求助

排查BsDatePicker的Cannot read property 'schedule' of undefined错误与开发警告

嘿,我来帮你解决这个问题!你的两个问题其实都和版本兼容性直接相关,再加上一个容易忽略的组件变量声明点,咱们一步步来:

核心问题:版本不匹配

你用的ngx-bootstrap 3.0.0是为**Angular 6+**设计的,而你的项目基于Angular 5,这种版本错位直接导致了schedule未定义的报错。另外那个BsDatepickerModule is under development的警告,也是因为3.x版本的日期选择器还处于迭代开发阶段,本身就带有这个提示。

具体解决方案

1. 降级ngx-bootstrap到Angular5兼容版本

先卸载当前的3.0.0版本,安装适配Angular5的2.x稳定版:

npm uninstall ngx-bootstrap --save
npm install ngx-bootstrap@2.0.5 --save

(2.0.5是2.x系列中支持Angular5的最新稳定版,你也可以选择同系列的其他版本)

2. 确保组件中声明了绑定变量

检查你使用日期选择器的组件(比如CreateEmployeeComponent),必须在类里定义dateOfBirth变量,否则双向绑定[(ngModel)]会找不到目标:

// create-employee.component.ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-create-employee',
  templateUrl: './create-employee.component.html'
})
export class CreateEmployeeComponent {
  // 一定要声明这个变量!
  dateOfBirth: Date;

  // 你的其他组件逻辑代码...
}

3. 确认现有配置无误

你的现有配置大部分是正确的,再快速核对这几点:

  • AppModule里已经正确导入BsDatepickerModule.forRoot()和FormsModule(你已经做对了)
  • .angular-cli.json里的样式和脚本引入都没问题,bootstrap和datepicker的样式都加载了
  • 2.x版本的datepicker在Angular5下不需要额外引入BrowserAnimationsModule,不用加这个

最后验证

做完上面的步骤,重启你的Angular开发服务器:

ng serve

这时候那个schedule未定义的错误应该会消失,开发警告也会跟着不见,BsDatePicker组件就能正常工作啦!

内容的提问来源于stack exchange,提问作者Alain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:31:44