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

如何解决Angular15项目中Moment InjectionToken注入缺失问题?附替代库推荐

工作日日历视图开发问题:Moment注入错误与替代库推荐

问题背景

我正在开发一个UI项目,需要实现周一至周五的工作日日历视图(类似Outlook/MS Teams日历),支持用户在工作日的任意时段预约日程。调研后选用angular-calendar搭配angular-calendar-scheduler,参考的示例基本符合需求,但将项目迁移到本地并升级至Angular 15版本后,出现了Moment相关的注入错误。

错误信息

ERROR NullInjectorError: R3InjectorError(e)[e -> InjectionToken Moment -> InjectionToken Moment -> InjectionToken Moment]: 
  NullInjectorError: No provider for InjectionToken Moment!
    at hm.get (main.js:1:43909)
    at ym.get (main.js:1:46712)
    at ym.get (main.js:1:46712)
    at ym.get (main.js:1:46712)
    at jD (main.js:1:17562)
    at ze (main.js:1:17663)
    at e.ɵfac [as factory] (main.js:1:240888)
    at ym.hydrate (main.js:1:48078)
    at ym.get (main.js:1:46664)
    at Vb.get (main.js:1:66293)

本地项目依赖

{
  "name": "angular",
  "version": "0.0.0",
  "private": true,
  "dependencies": {
    "@angular/animations": "^15.2.9",
    "@angular/cdk": "^15.2.9",
    "@angular/common": "^15.2.9",
    "@angular/compiler": "^15.2.9",
    "@angular/core": "^15.2.9",
    "@angular/forms": "^15.2.9",
    "@angular/material": "^15.2.9",
    "@angular/platform-browser": "^15.2.9",
    "@angular/platform-browser-dynamic": "^15.2.9",
    "@angular/router": "^15.2.9",
    "angular-calendar": "^0.31.0",
    "angular-calendar-scheduler": "^15.1.0",
    "angular-draggable-droppable": "^8.0.0",
    "angular-resizable-element": "^7.0.2",
    "bootstrap": ">=4.4.1",
    "core-js": "2",
    "date-fns": "^2.30.0",
    "jquery": "1.9.1 - 3",
    "moment": "^2.29.4",
    "popper.js": "^1.16.0",
    "rxjs": "~7.5.0",
    "tslib": "^2.3.0",
    "zone.js": "~0.11.4"
  },
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^15.2.9",
    "@angular/cli": "^15.2.9",
    "@angular/compiler-cli": "^15.2.9",
    "@angular/language-service": "^16.1.7",
    "@types/jasmine": "~3.10.0",
    "@types/node": "^12.11.1",
    "jasmine-core": "~4.0.0",
    "karma": "~6.3.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage": "~2.1.0",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "~1.7.0",
    "typescript": "~4.8.4"
  }
}

待解决问题

  • 代码与参考示例完全一致,如何修复这个Moment注入错误?
  • 有没有其他简单易用的免费Angular日历库可以实现相同的工作日预约日程功能?(已排除付费的Syncfusion)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:25:40