问题标签 [angular-providers]
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.
testing - 如何仅针对一项测试覆盖 Angular 5 中的 Provider?
在我的一个单元测试文件中,我必须用不同的模拟模拟多次相同的服务。
我看到函数overrideProvider存在,但我没有设法在测试中使用它。当我在“它”中使用它时,提供者不会改变。我没有找到调用此函数的示例。你能解释一下如何正确使用它吗?还是您有其他方法可以做到这一点?
javascript - 没有路由器 Angular 4 的提供者
我正在开发一个 Angular 应用程序,我没有在我的项目中的任何地方使用 Routes,但我在我的 web 开发工具中收到了这个错误:
在终端中,项目正在正确编译。
ng -v 给出了这个。
昨天还在工作,主要区别是我添加了一些抽象类、服务和 Http 请求
angular - Angular 依赖注入:提供者与导入
关于依赖注入的 Angular 文档让我感到困惑。
我了解 Angular DI 的工作原理是通过传递给 NgModule(对于整个模块)或 Component(对于该组件)的元数据对象上的 providers 数组向 DI(注入器)指定要“提供”的东西。
这个问题并不特定于反应形式,但在反应形式的 angular.io 示例中,它的组件定义为(简化!):
现在这有效(我有一个反应形式工作),但如何?在 Component providers 数组或其包含的 NgModule 提供程序数组中没有 FormBuilder 的“提供程序”。然而,Angular DI 文档坚持提供者数组是为 DI 注册某些东西的唯一方法。这是怎么回事?一些注入的东西怎么可能不需要在提供者数组中?
提前致谢。
更新答案
啊! 我从提供程序页面看到:“当您导入具有提供程序的模块时,这些提供程序也可用于应用程序中的所有类,只要它们具有查找令牌。例如,如果您将 HttpClientModule 导入您的 AppModule,它的然后,整个应用程序都可以使用提供程序,您可以从应用程序的任何位置发出 HTTP 请求。” https://angular.io/guide/providers
我没有意识到导入模块的提供者会自动成为导入模块的提供者。
angular - 角度提供程序错误
但是,当我将数据源更改为
我收到这个错误
你能帮我解决这个问题吗
问候
angular - “MobileService”类型上不存在属性“getmobileList”。角 4
所以创建了一个自定义服务,我导入到提供者中 app.module.ts
,我创建了一个接口
当我尝试从该服务中检索数据时
我收到一个错误
D:/Personal/My Practice/MOBILEKART/src/app/mobiles/mobiles.component.ts (61,40) 中的错误:“MobileService”类型上不存在“getmobileList”属性。
任何人都可以建议发生了什么..
- 提前致谢。
mobile Component.ts
mobile.ts
mobile_service_ts
app.module.ts
angular - 在同一模块中提供拦截器和依赖自定义服务的问题
我有AppModule
片段,我在其中注入令牌处理拦截器
我的拦截器
接收错误
如果我在拦截内进行注入:
然后相对误差:
我尝试了 Angular git Cyclic dependency error with HttpInterceptor #18224中提到的解决方案, 但仍然没有成功。
angular - angular injection.providedIn vs module.providers
一种常见的做法是将服务包括在@NgModule.providers
根据Angular 教程,您可以提供服务,而无需在@NgModule
装饰器中指定它,使用@injectable.providedIn
使用 Angular 教程中介绍的方法有什么好处吗?
angular-providers - angular 2+ 从提供者中获取位置
我刚刚开始尝试学习 Angular。我熟悉 Angular JS,并决定投身 2+。显然,我开始使用 Angular 6。那是一个很大的飞跃。
当应用程序启动时,我试图从我的 API 获取一些信息。为此,我创建了一个提供程序,并对一些我需要的信息进行了硬编码以使其工作。现在我正在尝试删除硬编码部分并实际从当前位置获取一个 url 段。我尝试过使用路由器,也尝试过使用位置。我不断收到一条消息,说他们没有提供者。我不知道如何解决这个问题。我首选的解决方案不是使用 window.location,而是我可以模拟和/或单元测试的东西。
app.module.ts
siteGuid.provider.ts
dependency-injection - Angular 6:在另一个服务中延迟加载服务/提供者
由于孩子的知识,我试图将提供者延迟加载到父母中。想象一下:
ServiceBImpl
只是一个接口
ServiceA
加载到根目录AppModule
MY_TOKEN
加载在子注射器中。但是,我不要求MY_TOKEN
在这个组件中,我要求ServiceA
.
这不起作用。
让我明确一点,我不想ServiceA
在组件级别的提供程序中拥有它,而是从AppModule
.