问题标签 [angular2-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.
angular - Angular2 提供者
我没有完全掌握提供者,也无法弄清楚这一点。我有一个带有构造函数的类:
constructor(private http:Http, private url:string, private ext:string){}
在引导程序中,我如何告诉 DI 提供 Http 但然后使用两个变量:environment.url
并environment.ext
提供字符串?
我知道我需要使用提供者,但它不会接受令牌字符串,我需要指定多次,并且仅在我的班级的情况下,而不是全局。
注意:
我知道我可以在我的类中导入environment.url
和environment.ext
,但我想通过构造函数设置这两个参数以最小化依赖关系。
angular - Angular 2 提供者异常
将服务注入组件时,我看到了错误:
未定义一个或多个提供程序“CategoriesComponent”:[?、[object Object]、BrowserXhr、[object Object]、[object Object]、XHRBackend、[object Object]]。
请帮我解决这个问题。非常感谢
下面是我的代码:
类别.services.ts
类别.component.ts
navbar.component.ts
angular - Angular 2 - 使用“多”提供者覆盖 Http
我想Http
用一个自定义类覆盖,比如说HttpClient
在请求之前和响应之后做一些操作,但是我不想记住导入那个类而不是平台 http 类。
我一直在尝试通过“多”供应商来做这件事,但我不能让它点击。
这是我的覆盖类:
这是我的 main.ts
但是当我尝试在我的应用程序中调用 http.get() 时,我得到了
有任何想法吗?我会以错误的方式解决这个问题吗?
谢谢!
更新
我找到了这篇博文。它几乎描述了 Gunter 在下面描述的内容。我接受他的回答。
unit-testing - 带有模拟的Angular 2 TestBed
我正在尝试测试使用其他服务的组件。我想通过为服务提供模拟来隔离组件。在 RC5 之前,我可以简单地使用addproviders
它现在已弃用并将被下一个 RC 删除。相反,我必须使用TestBed
. 当我出于某种原因提供模拟角度时,请继续寻找模拟所依赖的服务。并抛出一个DI exception
. 当我提供所有依赖项时,测试工作,但我不想为每个测试套件重复自己。这打破了基本的面向对象原则。我的测试套件:
角 2.0.0-RC5
angular - RuntimeCompiler 没有运行时提供程序
我正在尝试遵循此处接受的答案,并致电 RuntimeCompiler.clearCache()
这是我尝试过的方法:
但我收到了这个错误:
我在这里想念什么?
angular - Angular 2 RC 5 全球供应商
我怎样才能拥有一个只初始化一次的全局提供程序。所以我有以下提供者
然后是一个共享模块
导出类 SharedModule {
代码正在运行,这里的问题是每次我更改路由时都会初始化 ApiRequest 构造函数,因此每个页面都会更改。如何使 ApiRequest 提供程序在整个应用程序中只初始化一次?
angular - 向服务提供对象
我正在尝试使用另一个人(github)的服务工具。
此服务要求将配置传递给它。根据回购:
坦率地说,我不知道如何处理这些信息,因为在我遵循的几个教程中,我从来没有将设置注入到服务中。谷歌对我帮助不大。
到目前为止,我所做的是将服务添加到我的模块中home.module.ts
:
还有我的组件home.component.ts
:
可以预见的是,当我运行我的应用程序时,会出现以下错误:
我的问题是,如何为服务提供对象?在这种情况下,Neo4jSettings
.
javascript - angular 2 最终版本中的提供程序更改
在 Angular 2.0.0-rc.1 中,我们使用新的 Provider 创建了 Provider,请参阅下面的代码片段
var constAccessor = new Provider(NG_VALUE_ACCESSOR, { useExisting: forwardRef(() => EJDefaultValueAccessor), multi: true });
用于创建指令,但是当移植到 Angular 最终版本时,我无法找到解决方案。在以下位置检查了更改日志
https://github.com/angular/angular/blob/master/CHANGELOG.md
有什么解决办法吗?
angular - Angular 2 - 在每个 http 请求中附加 withCredentials = true
我正在使用 angular 2(不是通过 angular-cli: 1.0.0-beta.11-webpack.9-4 使用的最新版本),并且对于每个 http 请求,我都必须将 withCredentials 设置为 true。我尝试使用
http.get(' http://my.domain.com/request ', { withCredentials: true })
一切正常,但是我试图在引导程序中使用如下所示的东西,但没有取得任何成功
angular - Angular2 依赖注入:我在一些注入包的名称之前看到的“...”语法是什么(即'providers = [...SomeProvider]')
我刚刚开始使用 Angular2,通常注入提供程序看起来像:
但是,我已经看到一些在注入的提供程序名称之前包含“...”的软件包,例如:
为什么要这样做?是...
什么,它在做什么?