问题标签 [injectable]
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 - app.module 提供程序和组件是否共享同一个 Injectable 实例?
当我将可注入的 CameraChannelService 添加到 ngModule 的提供程序数组中时:
它是否只为该组件创建一个新实例?当我将它注入到 NgModules 声明组件之一中时?
angular - Angular 2 / Jasmine / Karma 错误:错误:无法解析路由器的所有参数:(?,?,?,?,?,?,?,?)。在 config/karma-shim.js
这是服务:
这是失败的测试:
不知道为什么会失败?谷歌搜索类似问题,我只能找到 Angular 2 beta 的答案......我们使用的是最新的 Angular 2 / 2.2.0
angular - 使用 app.component 中核心模块的服务
嗨,我是 angular 2 的新手,我试图将我在 angular.io 中学到的所有东西都落实到位。问题是我已经阅读了关于核心模块、服务、注射剂......和
如果我有一个这样的核心模块:
和一个简单的 app.module,例如:
如何使用为核心模块导出的 LoggerService 服务?我必须
在我的 app.component 中?因为在 app.component 的构造函数中它不起作用
我错过了什么?谢谢!
http - Angular 2 - 参数类型 RequestOptions 不可分配给参数类型 RequestOptions
我尝试创建自定义 Http 类以在全球范围内处理 401 错误。调用超级构造函数时出现错误 -参数类型 RequestOptions 不可分配给参数类型 RequestOptions。
这是我的代码:
angularjs - 无法从可注射的内部解析组件的参数
我正在尝试将一个组件导入到我的可注入服务中,但似乎我做错了什么。类似情况下的其他页面也会发生这种情况。目前的情况似乎发生了,因为我试图导入 SessionService 的 LoginPage 需要 SessionService,它在某处闻起来有无限循环的味道。除了在可注入的 SessionService 中不包括页面组件之外,我应该如何解决它的任何想法?
我当前的架构是构建的,因此如果会话不存在,我需要重定向到登录页面。Ionic NavController 需要一个页面组件来推送到导航堆栈。欢迎使用其他解决重定向问题的方法,但我也想了解为什么会这样。
会话服务.ts
登录页面.ts
对于那些要求它的人,content.service.ts
app.module.ts
我将 Angular 2.2.1 与 Ionic 2.0.0-rc.4 一起使用。
angular - 如何制作 Angular2 服务单例?
我正在尝试在我的应用程序中实现身份验证保护。IE; 只有经过身份验证的用户才能访问我的应用程序的某些路由。我正在遵循这里给出的 tut 。
用户登录后,我将 AuthService 中的布尔值更改为 true 以指示用户已登录。这需要在应用程序的整个生命周期中保留。
下面给出源代码:
auth-guard.service.ts
auth.service.ts
登录组件.ts
控制台输出
编辑:app.module.ts
我在这里做错了什么?任何帮助,将不胜感激。
angular - Angular 2:如何强制注入成为应用程序中的单例
我的应用程序中有一项@Injectable
服务作为提供程序添加到AppModule
. 我想确保我的开发团队中没有人将它注入任何其他模块。一个实例就足够了,它有一些我不想运行两次的复杂逻辑。有任何想法吗?
我知道 DI 在 Angular 2 中是如何工作的,所以像“确保它仅在 App Module 中作为提供者添加”这样的答案将无济于事。:(
请注意,如果该服务提供给除 AppModule 之外的任何其他服务,我希望它在构建或运行时产生某种错误。
arrays - Angular 2:如何在一个数组中返回属于多个扩展超类的类的对象?
我正在尝试在 Angular 2-Native Script 应用程序中创建一个服务,该应用程序定义了一组新闻项目,并有几种对相同数据进行操作的方法。这些新闻项目可以是不同的类型,例如大、小等,每个都可以有不同的参数。
我已经定义了接口和服务,如下所示。
我收到如下错误:
如何定义数组以使其可分配给新闻项目?
angular - 如何使用服务初始化 Injectable 变量
当用户登录时,我正在使用 Ionic2 Storage 存储用户 access_token 凭据。
当用户尝试访问后端 api 时,我需要将 access_token 提供给 REST 客户端。
我使用hBoylan 的 ng2-http 包创建了服务 最初该包使用
我使用Angular2 DI将 UserStorage 组件添加到构造函数中:
得到这个:
目前当我打电话时
我需要使用
添加 access_token 凭证
截至目前,我在页面组件中的调用必须如下所示:
它看起来像这样的原因是因为我似乎无法在 CategoryService 类的构造函数中设置用户。所以我必须首先从存储中获取用户,在类别服务中使用“setter”,然后将 getAvailableCategories() 调用嵌套在 getUser().then() 函数中。
这是因为在 CategoryService 构造函数完成从 UserStorage 设置用户之前调用了 getCategories 函数。
我知道这是因为调用是异步的,但我觉得好像使用 setTimeout 之类的东西来“等待”直到 getUser 调用返回是 hacky 并且不是 100% 可靠的。
还有什么我可以尝试的吗?我真的很想打电话
并从那里继续没有嵌套的承诺调用。
我愿意进行任何精明的更改,以使 access_token 立即可用。
unit-testing - Detecting changes to service stub using TestBed
This is the test example for a Component
with a Service
using stubs provided in the angular2 documentation.
When I am trying to build it out and run it, I find that the component does not pick up the changes for the second test case. I always see the message.
The service looks like this:
import { Injectable } from '@angular/core';
The component looks like this:
This is the unit test in question:
The error is always:
Error: Expected 'Welcome, Test User' to contain 'Bubba'.
When debugging, I found that the service stub is updated with the appropriate value.