问题标签 [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.
angularjs - @injectable 和 es6 模块提供的角度服务
在 Angular 中,我们需要创建 @Injactable 服务类并将其提供给我们的项目。
理论上,我们也可以导入作为单例服务执行的 es6 模块。
除了这不是“角度方式”之外,为什么这种方法不那么普遍?
角度方式
es6方式
arrays - Angular2 @Injectable 不起作用
我@Injectable
在 Service.ts create 中有一个带有 get-function 的类。此函数应返回一个数组并获取任何数组。但它返回null
。如果我直接在 a 中写这个@Component
,那么它确实得到了数组。我究竟做错了什么?
服务.ts
组件.ts
dart - 例外:未找到组件的提供程序
我有一个自定义表单和自定义输入。
我正在尝试将自定义表单注入自定义输入。当输入是表单的直接子级时,它可以工作,但是,当我在它们之间有一个组件时,它会引发异常。
这有效:
AppComponent.html:
这不起作用:
AppComponent.html:
一些组件的html:
CustomInput 构造函数:
我收到错误异常:未找到 CustomForm 的提供程序。
angular - 使用服务在角度组件之间调用方法不起作用
我正在尝试使用可注入服务从另一个组件调用一个组件中的方法
我的第一个组件(我正在从该组件调用其他组件中的方法)
bottombar.component.ts
从上面的组件中,我尝试调用SideDrawerGettingStartedComponent中的一个方法,该方法位于下面,它将触发一个打开侧抽屉的方法
我的第二个组件(其中存在被调用的方法)
sidedrawer.component.ts
共享服务如下
bottombar.service.ts
问题
我有一个与bottombar.component.ts关联的 html,其中包含一个按钮。点击它会触发 bottombar.component.ts 中的 openDrawer()函数
我可以在我的服务文件中看到控制台值,但不知何故它没有触发sidedrawer.component.ts中的订阅
没有错误,因此很难找到导致问题的确切原因。
此外,我已经在ngModule的提供者中声明了我的服务以避免单例问题。
有什么我在这里想念的吗?
提前致谢
angular - Angular 4 - DI:如何在我的组件中注入 IntersectionObserver
由于我想使用您可以在许多网站上看到的滚动淡入功能,我想知道如何在我的应用程序中以“角度方式”实现此类功能。我已经有一个有效的组件实现,也许这可以帮助任何需要在滚动行为上使用这种淡入的人。
我对下面(缩短的)代码的问题是它不支持依赖注入,因为它总是创建一个新的 IntersectionObserver 实例。
如您所见,这非常有效,但是对于多个组件来说设置太多,并且根本不使用依赖注入。有没有办法配置它,可能是使用Service或Factory Provider?
这些是我偶然发现的一些链接,但我不知道如何实现这样的特定案例:
angular - 如何在不注入的情况下获取 Angular 路由器的实例?
通常我会在我的组件中这样做。
如果我想在不注入的情况下获得它的引用怎么办?我试图创建它,但在我无法弄清楚的所有参数上都死了。Ans 因为这不是通常的(也不推荐的)接近它的方法,所以没有太多的 googlearch 。
angular - 从Angular 2+中模块声明中的导出函数访问服务
我有以下模块声明:
和服务:
我需要在模块导出函数的 tokenGetter 中使用服务方法“getToken”,但我无法使其工作并且 Google 没有回答我的问题(或者我无法正确查看)。
angular - 如何使用 Injectable 中的“this”引用辅助方法方法?
可注入类的“this”引用了注入组件的 this。
想要使用可注入来从组件中抽象代码。但是当我使用 'this' 来引用 @Injectable 类的父方法中的其他方法,然后尝试使用它被注入的组件时。
调用的方法 this.enclosedMethod 不起作用。错误:this.enclosedMethod 不是函数。记录“this”表明它引用了已注入的 Component 类。例如
问题:您如何在 Injectable 的其他方法中使用方法?我现在正在画一个空白
angular - Angular 2/Typescript 在页面之间共享(动态)数据
好吧,这个问题可能被问了很多,但我还是要问。
我是 Typescript/Angular 2 的新手。我有两个页面,比如说页面 A 和页面 B 在页面 A 上我使用 api A 来请求数据。检索数据后,用户可以单击链接/按钮,然后通过路由切换到页面 B,页面 B 使用页面 A 的特定数据从 api B 请求数据。现在 API 的东西工作正常。但我似乎无法从页面 A 到页面 B 获取数据。
现在我已经读到 Parent/Child/Sibling 使用带有 obeservable 的可注入服务,我尝试过。但它根本不起作用。
我确保提供程序设置正确,并且可注入服务仅实例化一次。
他们是否有书面规则/方式来解决这个问题?我的情况与父母/孩子无关。但有点像。
基本上这就是我所做的: 服务:
页面 A:
B页:
我只在这里放了我认为应该可以工作的必要代码,但我可能遗漏了一些重要的东西!我只是不想把整个代码放在这里。但基本上这里上面是我想要的。
有一次我只是放弃并开始使用 localStorage 来共享数据,但我并不是很喜欢它,因为我无法想象如果不使用 localStorage 就没有 Angular 2/typescript 的方式来做到这一点.
在此先感谢您为这个菜鸟提供的所有帮助;)。
编辑:https ://stackblitz.com/edit/angular-p2ucdh
它在这里工作,我一定在我的实际应用程序中犯了一个严重的错误:(。在这一点上,我想我可能会重写整个该死的东西。
实际项目(带有可怕的代码):https ://github.com/EldinZenderink/LittleWeebTS/
angular - 无法解析 LoggedinPage 的所有参数(Angular - 组件/可注入)
运行我的 ionic 应用程序时出现此错误:
在构造函数中调用 AuthService(Injectable 类型)时。
奇怪的是它在其他类中工作得非常好!
LoggedinPage:( 有问题)
ContactPage:( 工作正常)
类认证服务:
请注意,AuthService 功能已被删除,因为它们很多且在此特定查询中不需要。
我正在使用 VSCode,在构造函数中提到 AuthService 时它没有显示任何“红色”或错误。
知道为什么它不能在同一类中解决它吗?
谢谢