如何解决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
相关产品推荐
相关产品推荐

