Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 使用字符串查找角度类型_Angular - Fatal编程技术网

Angular 使用字符串查找角度类型

Angular 使用字符串查找角度类型,angular,Angular,我正在制作一个带有工具箱的拖放应用程序,您可以从中抓取小部件并将它们放在一个div中。我遵循了这个方法,到目前为止效果很好,但现在我希望能够将配置持久化为JSON,然后重新加载它,我被卡住了 宿主组件获得一个ComponentFactoryResolver。从那里我可以说: let factory = resolver.resovleComponentFactory( SomeComponent ) 但我的下一步是能够使用名称字符串来实现这一点。需要打字。有没有办法查找给定名称的类型?我想一定

我正在制作一个带有工具箱的拖放应用程序,您可以从中抓取小部件并将它们放在一个div中。我遵循了这个方法,到目前为止效果很好,但现在我希望能够将配置持久化为JSON,然后重新加载它,我被卡住了

宿主组件获得一个ComponentFactoryResolver。从那里我可以说:

let factory = resolver.resovleComponentFactory( SomeComponent )

但我的下一步是能够使用名称字符串来实现这一点。需要打字。有没有办法查找给定名称的类型?我想一定有办法通过注入框架实现这一点,但我无法通过API文档建立连接。

问题是,您必须在主机组件中导入将注入的每个组件。 比如说:

import { SomeComponent1 } from '../component1';
import { SomeComponent2 } from '../component2';
import { SomeComponent3 } from '../component3';
一种方法是将它们关联到一个对象中

components = {
  'key1': SomeComponent1,
  'key2': SomeComponent2,
  'key3': SomeComponent3
}
然后在下面的示例中使用一个字符串,从另一个方法检索该字符串以获取所需的组件

const key = someMethodOrServiceThatGivesYouAString();
let factory = resolver.resovleComponentFactory( this.components[key] );

我知道这不是您想要的,但这是我在当前应用程序中的做法。

我在解析器['''u factories']中找到了另一种方法。密钥,但它感觉太没有文档化,不安全。所以我想我会接受你的建议,谢谢。