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