问题标签 [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.

0 投票
1 回答
4237 浏览

angular - Angular2:如何将同一服务的两个实例注入多个组件?

假设我有一个如下所示的 Angular 服务:

目前我有几个使用剪贴板服务的组件。

当您右键单击英雄时,您可以复制/剪切它们。以后,在同一个组件或者不同的组件中,都可以粘贴英雄。像这样的东西:

我现在想向我的组件添加拖放功能。有趣的是,拖放的,和 方法是相同的,但是我需要使用剪贴板的单独实例来防止以下canPaste情况:pastecutcopy

  1. 用户剪辑“蝙蝠侠”
  2. 用户将“超人”拖放到新位置
  3. 用户尝试粘贴“蝙蝠侠”,但不幸的是剪贴板已被拖放污染。

我可以创建一个名为DragDrop扩展剪贴板的新类:

这允许我像这样更新 HeroTable:

这也允许我在另一个组件中使用剪贴板的两个实例,并告诉哪个是哪个。我需要确保所有组件都知道哪个剪贴板应该用于剪切/粘贴,哪个应该用于拖放。

不幸的是,这个解决方案感觉就像一个黑客。有没有一种 Angular 有福的方式来做到这一点?


我发现了这个问题:Angular2:如何使用同一服务的多个实例?这看起来非常相似,但是我希望鉴于我提供的详细信息,我可能会得到略有不同的回应。

0 投票
1 回答
280 浏览

angular - 无法解析 Ionic 2 / Angular 2 提供程序

我正在使用 Ionic 2,并且自 2.0.0 版以来在提供程序/注入方面存在一些问题。我不断收到的错误如下(使用不同的提供者,而不仅仅是这个):

未捕获的错误:无法解析 LoginRedirectService 的所有参数:(App、?、AlertController)。

解决我的提供程序的注入似乎存在问题,即使它们都用@Injectable 装饰。

一个文件

不同的文件

等等。

我还在 app.module.ts 中添加了所有提供程序,按照它们必须注入的顺序:

我的项目结构如下所示:

  • 源代码
    • 应用程序
      • app.module.ts
      • app.component.ts
    • 资产
    • 页面
    • 提供者
      • 子文件夹
    • ...
  • package.json 等

我尝试在需要它们的类的构造函数中显式调用@Inject,但也没有成功。

我真的不知道该怎么做,感谢任何帮助,谢谢

0 投票
1 回答
565 浏览

angular - app.module 提供程序和组件是否共享同一个 Injectable 实例?

当我将可注入的 CameraChannelService 添加到 ngModule 的提供程序数组中时:

它是否只为该组件创建一个新实例?当我将它注入到 NgModules 声明组件之一中时?

0 投票
2 回答
30480 浏览

angular - Angular2 模块:我如何从另一个模块导入服务

我需要导入ClinicFacilityService在另一个模块(apiClient.module)中声明的

这甚至可能吗,如果不是,为什么不可能。目前我正在ClinicFacilityService像这样导入:

0 投票
3 回答
5274 浏览

angular - Angular2,AoT 编译:无法确定组件 AppComponent 的模块

摘要:我正在尝试将 Angular2 AoT 用于我的 Angular2 应用程序,但由于我有静态提供程序将一些值从服务器传递到 Angular2,因此ngc显示了一些错误。我的问题是如何获取ngFactory使用ngc.

详细信息:我正在使用说明书指南,运行"node_modules/.bin/ngc" -p tsconfig-aot.json显示以下错误:

tsconfig-aot.json:

包.json:

指数.pug:

main.ts:

app.module.ts:

app.component.ts:

更新 1:如评论中所述,我验证如果我删除静态提供程序的代码,我用于将数据从 servver 传递到 Angular2,即createMainModule()在 app.module.ts 中,等等,然后ngc工作正常。

更新 2:我使用 SystemJS 作为模块加载器。

0 投票
1 回答
603 浏览

angular - 检测语言环境并使用提供程序将其设置在 Angular 2 根模块上

我有一个检测当前语言环境的功能,我需要通过提供程序将语言环境设置为 angular 2 root App 模块。这样我就可以在所有其他组件中使用它。

我知道我可以像下面那样做到这一点。

{提供:'Locale',useValue:'en-US'}

但如果可能的话,我想在下面做这样的事情。

{ 提供:'Locale',useValue: this.detectLocale() }

否则请提出任何合适的方法来实现这一点。谢谢。

0 投票
1 回答
1161 浏览

angular - 如何为所有延迟加载的模块提供自定义提供程序

我在我的应用程序中使用子组件的延迟加载策略。在应用程序的顶层,我有拦截所有 ajax 调用的自定义 HTTP 提供程序。

我的延迟加载模块不会影响此自定义提供程序。有没有办法也为他们提供?providers在 component.module 文件中的属性中没有重复代码。谢谢!

0 投票
1 回答
142 浏览

angular - Angular 2 - 404 提供程序问题

我在尝试在 Angular 2 应用程序中添加提供程序时遇到问题。我正在尝试一些我在网上找到的解决方案,但我无法弄清楚我的应用程序发生了什么。

基本上,当我将提供程序添加到我的代码时,我遇到了问题:

注意:我检查了路径是否正常,并且可视代码没有给我任何错误。

在下图中,您可以看到我的应用程序的输出。

应用程序输出 在此处输入图像描述

我要添加的服务:(performances.service.ts)

我的 app.component.ts

systemjs.config.js

知道添加基本提供程序时我做错了什么吗?谢谢!

已编辑

下面你可以看到我当前使用的所有依赖项

0 投票
1 回答
1986 浏览

angular - Ionic2/Angular2 应用程序中的提供者内部的提供者

我有两个提供者。

  1. AppStorage 负责从存储中设置和获取值。

    /li>
  2. OauthService 这是我的 api 服务。

    /li>

现在我将两个可注射添加到我的 app.module

但是当我运行应用程序时,oauthService 的构造函数中的 appStorage 对象未定义。你能告诉我我在做什么错误吗,我只是在另一个服务中注入服务。

0 投票
3 回答
2723 浏览

angular - Angular 2 导入路径无法正常工作

我有一项服务注入到我的应用程序组件中。

app.component.ts

我的文件夹结构如下 应用程序文件夹结构

我的服务存在于产品文件夹而不是产品文件夹中。当我在导入语句中将其更改为大写时,我的应用程序会中断“No Provider For ...”。有人可以告诉我为什么会这样。我不知道为什么!!!