问题标签 [angular2-injection]

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 回答
4274 浏览

javascript - Angular2 导入语法:“import * as“与”进口{}"

我看到可以导入两种不同的模块。

大多数进口看起来像 'import {<something>} (即import { Component } from '@angular/core';

其他导入喜欢'import * as <something>(即import * as _ from "lodash";

据我了解,在使用类型(即)将 vanilla js 模块导入项目而不是Angular2模块时,您使用后一种方法导入,对typings install lodash=npm --save

如果我的假设是正确的,您是否以相同的方式使用两个导入的类/模块(当您声明它们在 Components 类中使用时)?

0 投票
1 回答
1904 浏览

angular - 当令牌可以是多个值时,通过 Injector.get() 获取父组件

我正在尝试做的事情:

  • 使用单个指令的多个不同组件
  • 调用指令时,我需要能够获取调用指令的父/主机组件。

Plnkr -> http://plnkr.co/edit/Do4qYfDLtarRQQEBphW3?p=preview

在查看 angular.io 文档时,我发现“Injector”可用于在构造函数中获取父组件

这样做,我得到了 Injector Object。据我所知,我应该使用

我难以理解的问题是,Angular 中提供的示例假设您知道要在令牌中提供的组件类型。IE:

在 pnkr 示例中,我的模板中有两个组件

我的问题是,在“mydirective.ts”中。当我不知道父级是“my-image”还是“my-box”组件时,如何利用“injector.get()”。

在提供的示例中,该指令被触发“ondrag()”。查看控制台,以获取日志消息。

非常感谢任何帮助。

非常感谢你。

0 投票
1 回答
36 浏览

angular - 是否有任何理由(单元测试除外)使用 Angular2 依赖注入?

我试图弄清楚为什么我们需要 Angular2 依赖注入。测试案例很清楚:我们可以轻松地模拟任何服务。但是你能提供任何其他理由吗?

0 投票
2 回答
7576 浏览

angular - ng2 - 基于模板动态创建组件

我一直在研究用于创建动态组件的 Angular 2 API ComponentResolverDynamicComponentResolver但我的想法与那些 API 提供的不同。

NG2 中是否有任何方法可以根据其类名字符串创建组件?

例如,我正在构建一个可配置的图表仪表板。每个用户的布局都存储在数据库中,说明他们想要这里 2x 折线图,那里需要 3x 条形图,等等。

当我将此数据加载为 json 时,它看起来像:

type我要反思地创建的组件的类名在哪里。

到目前为止,我有以下内容:

但整个想法是消除对chartMap. 如何在不引用类型的情况下基于字符串反射性地创建此类?

0 投票
2 回答
296 浏览

angular - Angular2 为库提供配置

我正在为 Angular 2 编写一个库服务,我希望调用应用程序能够提供一些配置。我可以在基类上创建抽象属性,但这会导致很多调用应用程序必须在多个位置定义配置。

在 Angular2 应用程序中,我在主应用程序模块中使用了这样的技术

然后我可以使用 @Inject('app.config') 在需要的地方注入配置。但是,由于我正在编写的库正在定义要扩展的基类,我不想在构造函数中注入这个值,因为它需要调用应用程序注入值并通过 super() 转发它。

我一直在研究 ReflectiveInjector 类,但它需要一个类型而不是字符串。

我怎样才能做到这一点?

0 投票
1 回答
298 浏览

angular - 子组件中的 DI 错误

我正在开发一个(非常)巨大的 Angular 2 应用程序作为我公司的内部工具。该应用程序由不同的子应用程序组成,只能由某些用户访问。

为了做到这一点,我尝试使用 CanActivate 类返回一个可观察对象,查询我的一项服务以验证访问权限,但是当我尝试导入服务时,该类的构造函数无效。

所以我在应用程序本身中移动了测试,但它以同样的方式失败了。所以很可能问题出在服务本身。非常奇怪的是,apps 容器使用的是相同的服务,完全没有任何问题(该服务还提供可用应用程序的列表,生成应用程序菜单)。

我很确定问题是组件的加载顺序(并且可能与 -Http相关),但我不知道在哪里看。遗憾的是,鉴于应用程序的复杂性,我很难隔离问题,我不知道该怎么办。

我搜索了类似的问题,也发现了类似的情况,但是 Angular2 的开发同时向前推进了,那些解决方案已经变得毫无用处。

0 投票
1 回答
46 浏览

angular - 应该在哪里注入服务,应该在所有应用程序中都可见?(角度2)

我想创建NewService. 我想有可能从所有应用程序中调用它吗?

我应该在 SharedModule(导出所有可重用模块的模块)或 AppModule(我的应用程序的主模块)中注入它

0 投票
3 回答
51615 浏览

angular - 如何从服务中调用组件方法?(角度2)

我想创建可以与一个组件交互的服务。我的应用程序中的所有其他组件都应该能够调用此服务,并且此服务应与此组件交互。

如何从服务中调用组件方法?

从此服?

0 投票
2 回答
4334 浏览

angular - Angular 2 通过字符串名称获取服务

有没有办法仅通过服务名称获取 angular 2 的可注入服务的实例?

例如,在 Angular 1 中,您可以编写:

并且该service变量将获得该服务的一个实例。

我真的很感谢你们的帮助!

0 投票
3 回答
75 浏览

angular - `providers: [ MyService ]` 是否与 `providers: [{ provide: MyComponent, useClass: MyComponent }]` 相同

我正在阅读ng-bookangular 2 revision 47 page 250 并且有以下段落:

当我们将类本身放入提供者列表时,如下所示:

这告诉 Angular,每当 MyService 被注入时,我们都想提供一个 MyService 的单例实例。因为这种模式很常见,所以类本身就是以下等效配置的简写符号:

这是一个错字吗?意思应该是: