问题标签 [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.
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 类中使用时)?
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()”。查看控制台,以获取日志消息。
非常感谢任何帮助。
非常感谢你。
angular - 是否有任何理由(单元测试除外)使用 Angular2 依赖注入?
我试图弄清楚为什么我们需要 Angular2 依赖注入。测试案例很清楚:我们可以轻松地模拟任何服务。但是你能提供任何其他理由吗?
angular - ng2 - 基于模板动态创建组件
我一直在研究用于创建动态组件的 Angular 2 API ComponentResolver
,DynamicComponentResolver
但我的想法与那些 API 提供的不同。
NG2 中是否有任何方法可以根据其类名字符串创建组件?
例如,我正在构建一个可配置的图表仪表板。每个用户的布局都存储在数据库中,说明他们想要这里 2x 折线图,那里需要 3x 条形图,等等。
当我将此数据加载为 json 时,它看起来像:
type
我要反思地创建的组件的类名在哪里。
到目前为止,我有以下内容:
但整个想法是消除对chartMap
. 如何在不引用类型的情况下基于字符串反射性地创建此类?
angular - Angular2 为库提供配置
我正在为 Angular 2 编写一个库服务,我希望调用应用程序能够提供一些配置。我可以在基类上创建抽象属性,但这会导致很多调用应用程序必须在多个位置定义配置。
在 Angular2 应用程序中,我在主应用程序模块中使用了这样的技术
然后我可以使用 @Inject('app.config') 在需要的地方注入配置。但是,由于我正在编写的库正在定义要扩展的基类,我不想在构造函数中注入这个值,因为它需要调用应用程序注入值并通过 super() 转发它。
我一直在研究 ReflectiveInjector 类,但它需要一个类型而不是字符串。
我怎样才能做到这一点?
angular - 子组件中的 DI 错误
我正在开发一个(非常)巨大的 Angular 2 应用程序作为我公司的内部工具。该应用程序由不同的子应用程序组成,只能由某些用户访问。
为了做到这一点,我尝试使用 CanActivate 类返回一个可观察对象,查询我的一项服务以验证访问权限,但是当我尝试导入服务时,该类的构造函数无效。
所以我在应用程序本身中移动了测试,但它以同样的方式失败了。所以很可能问题出在服务本身。非常奇怪的是,apps 容器使用的是相同的服务,完全没有任何问题(该服务还提供可用应用程序的列表,生成应用程序菜单)。
我很确定问题是组件的加载顺序(并且可能与 -Http
相关),但我不知道在哪里看。遗憾的是,鉴于应用程序的复杂性,我很难隔离问题,我不知道该怎么办。
我搜索了类似的问题,也发现了类似的情况,但是 Angular2 的开发同时向前推进了,那些解决方案已经变得毫无用处。
angular - 应该在哪里注入服务,应该在所有应用程序中都可见?(角度2)
我想创建NewService
. 我想有可能从所有应用程序中调用它吗?
我应该在 SharedModule(导出所有可重用模块的模块)或 AppModule(我的应用程序的主模块)中注入它
angular - 如何从服务中调用组件方法?(角度2)
我想创建可以与一个组件交互的服务。我的应用程序中的所有其他组件都应该能够调用此服务,并且此服务应与此组件交互。
如何从服务中调用组件方法?
从此服?
angular - Angular 2 通过字符串名称获取服务
有没有办法仅通过服务名称获取 angular 2 的可注入服务的实例?
例如,在 Angular 1 中,您可以编写:
并且该service
变量将获得该服务的一个实例。
我真的很感谢你们的帮助!
angular - `providers: [ MyService ]` 是否与 `providers: [{ provide: MyComponent, useClass: MyComponent }]` 相同
我正在阅读ng-book
angular 2 revision 47 page 250 并且有以下段落:
当我们将类本身放入提供者列表时,如下所示:
这告诉 Angular,每当 MyService 被注入时,我们都想提供一个 MyService 的单例实例。因为这种模式很常见,所以类本身就是以下等效配置的简写符号:
这是一个错字吗?意思应该是: