问题标签 [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 - Observable BehaviorSubject 服务 - 单例和提供者
我有一个简单的组件progressBar
来显示(或不显示)进度条。和一个简单的可观察服务。
这是服务:
false
这里没有什么花哨的,只是一个默认设置为 的 BehaviorSubjecthide/show
用于更改值.next()
。
该组件如下所示:
在初始化期间,组件订阅主题以获得默认值并将其设置为isDisplay
.
showProgress
仅用于在我的模板中尝试。
当服务在组件内部使用时,它工作得很好。
但是,当我尝试在另一个组件中调用此服务时,它不起作用。
示例:我的另一个组件称为profilesComponent
我认为这是因为这两个组件不共享相同的服务实例,但我找不到这样做的方法。(也许提供者在@NgModule
?)
angular - 如何从 Angular 2 中的 observable 提供 LOCALE_ID?
在 Angular 2 中,为了本地化日期管道,您需要提供LOCALE_ID
. 我有一个服务LocaleService
,它公开了locale$: Observable<string>
哪些实现BehaviorSubject<string>
. 我不想给这个服务添加任何状态,我希望它是完全被动的。提供时如何从该服务中获取信息LOCALE_ID
?
ionic2 - Ionic 2:如何在 Controller 类中调用 Provider 函数
我只在我的机器上创建了新的 Cordova 插件。然后我将它添加到我的项目中。当我调用该插件时它工作正常。现在,我尝试为我的插件创建一个结构化的调用者。我为它创建了一个 Provider,但问题是我不知道如何从我的 Controller 类中调用我的插件函数。下面是我的示例代码。
提供者:my-service.ts
页面:my-page.ts
它返回给我这个错误 -Property 'subscribe' does not exist on type 'void'.
我不知道如何调用该函数,因为我的提供者返回给我success
或error
.
angular - Angular2 Routing-Resolve 接口使用与 OpaqueToken
我想在实例化路由/组件之前获取数据。因此,我想使用 Angular2-Routing-Module 中的“解析器”接口。
看看我的代码。它使用字符串作为提供程序名称,但如果我为提供程序使用 OpaqueToken 则会引发错误。
注意“不工作”的评论。
1 我的(儿童)路线(摘录)。
2 我的模块代码(摘录):
3 我的自定义解析器类(摘录):
不可能用创建的 OpaqueToken(“MyToken” - 当然不带引号)替换字符串(“myResolver”)。不知道为什么。我为多个提供者使用了多个 OpaqueToken,但解析器无法使用它。
控制台中的错误消息如下所示,没有更多信息。
错误:必须定义令牌!
有人知道吗?
angular - 覆盖组件,如服务?
假设我们导入了 Angular Material 模块之一:
在里面MaterialInput
,有一个使用的组件名为:MaterialInputComponent
由于某些原因,我想用自己的组件覆盖该组件
所以我想说:
我知道我们可以覆盖这样的服务,但它也可以用于组件或指令吗?
更新:我不是在寻找组件继承,我想要的是使用类似Material Module
但有时我想覆盖它的一些组件行为,就像你对服务所做的那样。
喜欢 :
如果这是 MaterialInput 组件背后的原始代码,它位于我的节点模块中。
我有一个类似的课程:
而且,假设我正在导入孔 MaterialInputModule
那可行吗?
jwt - 没有 AuthHttp 提供者!Angular2-Jwt 提供程序问题
至少我认为我提供的是正确的。下面是我的 app.module 文件和我使用 AuthHttp 的服务的相关片段。我按照自述文件中的配置创建了为 AuthHttp 提供的工厂方法,但存在一个持续存在的问题,即在我的服务中无法识别它。我读过关于嵌套依赖注入的文献,我觉得我做的事情是正确的。
app.module.ts
员工服务.ts
angular - 在组件类中使用多个提供程序的语法是什么?
我需要在我的组件中使用附加服务。看来我应该可以这样做
但它不起作用。
angular - 使用 Angular 2+ forRoot 模式将回调传递给模块
我创建了一个名为的 Angular 模块DataModule
,其中包含用于通过令牌安全的 HTTP API 访问我的后端的服务。401 Unauthorized
关于 HTTP 访问控制错误,例如403 Forbidden
我希望能够重定向到/login
或尝试刷新令牌等。
我想在 Ionic 应用程序中重新使用它DataModule
,所以我不希望与标准@angular/router
RouterModule
或其他任何东西有任何耦合。
目前,我在导入时通过 forRoot 方法传入一些原始DataModule
值AppModule
:
我需要onError
回调才能调用router.navigate('/login')
或类似的功能,但由于这是一个简单的配置对象,我认为router
现阶段无法注入。
我正在寻找一种方法来传递这样的东西,并且我已经审查了其他几个流行的 ng 项目,例如ngx-translate
,angularitics2
并且ngx-restangular
它们都传递了似乎然后由组件返回的提供程序。这是通过传入实现包中保存的接口的 AuthException 服务或类似服务来实现我所追求的方法DataModule
吗?
更新:
我最终从我提到的项目中获得了这个想法,即我DataModule
有一个默认的错误处理服务,基本上什么都不做。然后,我在 forRoot 中注入一个特定于应用程序的更好的错误处理类,然后在提供程序中使用它:
我ApiServiceFactory
的参考:
我还必须使用 anInjectionToken
来提供我的配置对象作为工厂的依赖项:
在我的主应用程序中,我执行以下操作:
如果这种方法存在任何潜在问题,很高兴听到任何人的意见。我希望我应该能够在 Ionic 应用程序中使用这个模块,如下所示:
angular - Angular:ng build --prod“无法确定类的模块。将类添加到 NgModule 以修复它”
我已将分页逻辑放在一个单独的模块中,并将其导入AppModule
. 下面是我的分页模块代码和AppModule
.
PagingUtilities 模块:
应用模块:
正如你所看到的,OrderByPipe
并且FilterPipe
是管道,我在 my 中提供它们,我正在将它们PagingUtilitiesModule
导入PagingUtilitiesModule.forRoot()
到AppModule
. 它在文件更改时发生的正常构建中运行良好。但是当我这样做时ng build --prod
,它显示了这个错误
ERROR in Error: Cannot determine the module for class OrderByPipe in D:/Projects/AMSSFrontEnd/src/app/shared/paging-utilities/order-by.pipe.ts! Add OrderByPipe to the NgModule to fix it.
Cannot determine the module for class FilterPipe in D:/Projects/AMSSFrontEnd/src/app/shared/paging-utilities/filter.pipe.ts! Add FilterPipe to the NgModule to fix it.
请帮我解决一下这个。