问题标签 [angular2-injection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
38 浏览

angular - 如果未在组件中直接提供服务,则 `ng serve` 失败

我有一个结构如下的项目:

在我的组件中,我尝试使用该服务:

但是当我运行ng serve它失败说ERROR in /Users/jrquick/uabshp/project/src/app/project/project.component.ts (9,49): Cannot find name 'ProjectService'

即使我在 project.module.ts 文件中有服务:

我已经尝试将它添加到我的组件注释的提供者数组中,但我更喜欢使用单例服务。我也可以直接在 project.compontent.ts 文件中导入服务(如下所示),但必须在模块中复制和粘贴相同的导入语句以及多个组件和服务并不理想。

project.service.ts 声明:

0 投票
1 回答
1994 浏览

angular2-services - Angular 2 组件注入服务:“类型上不存在 [ts] 属性”

我是 Angular 2 的菜鸟。我正在开发一个简单的应用程序。我在 Angular 2 应用程序中使用服务时遇到问题。当我想在组件上使用它时,我不能在 ngOnInit() 组件方法上使用 getFavoritos() 服务方法。

节点控制台显示此消息:

src/app/favoritos-list/favoritos-list.component.ts(30,31) 中的错误:错误 TS2339:“typeof FavoritosService”类型上不存在属性“getFavoritos”。

这是我的服务:

收藏夹.service.ts

这是我的组件:

收藏夹列表.component.ts

提前致谢

0 投票
2 回答
2669 浏览

angular - Angular 5 和 lerna NullInjectorError:没有 InjectionToken 的提供者

我的用例如下:

子库的代码

子库中指令的代码

在我安装了子模块的父级中,我正在做以下简单的单元测试

当我运行测试时,我收到以下错误:

StaticInjectorError[InjectionToken Platform ID]: NullInjectorError: No provider for InjectionToken Platform ID! 错误:StaticInjectorError[InjectionToken Platform ID]:在resolveToken( webpack:///node_modules/@angular/core/esm5/core.js:1211:0 <- spec.bundle.js:3805:24) 在 tryResolveToken (webpack:///node_modules/@angular/core/esm5/ core.js:1153:0 <- spec.bundle.js:3747:16) 在 StaticInjector.get (webpack:///node_modules/@angular/core/esm5/core.js:1024:0 <- spec.bundle .js:3618:20) 在 resolveToken (webpack:///node_modules/@angular/core/esm5/core.js:1211:0 <- spec.bundle.js:3805:24) 在 tryResolveToken (webpack:// /node_modules/@angular/core/esm5/core.js:1153:

我的package.json是这样的:

即使使用以下代码模拟 PLATFORM_ID

错误仍然存​​在。

包作为符号链接

我有一个新的理论,为什么它会发生在我身上。我想因为我使用lerna来管理我的包和包依赖项。而且由于我是通过lerna将子模块添加到宿主模块中的,那么lerna在宿主的节点模块中创建了子模块的符号链接。所以我的理论是,当我们使用的库是符号链接时,DI 无法识别他需要注入的内容。试图弄清楚如何使用 --preserve-symlinks 运行测试

非常感谢

0 投票
1 回答
1758 浏览

angular - Angular 的自定义模块生命周期是什么?

是否有关于模块生命周期的信息。目前,Angular 内部组件的生命周期有很好的文档记录,我们有钩子方法,如ngOnInit(),ngDoCheck()等。

Angular 模块有类似的生命周期钩子吗?我在哪里可以读到这方面的信息?

0 投票
1 回答
953 浏览

angular - 在 Angular 2.X 自定义模块中获取对注入器的引用?

我们如何在应用程序模块中获得对依赖注入器的引用?

这是自定义模块的示例代码。那么我们如何在这个类中获得对 Angular DI(依赖注入器)的引用呢?