我正在制作一个带有工具箱的拖放应用程序,您可以从中抓取小部件并将它们放在div中。我跟着this example,它到目前为止工作得很好,但现在我希望能够保持配置(到JSON)然后重新加载它,我就卡住了。
托管组件获取ComponentFactoryResolver。从那里我可以说:
let factory = resolver.resovleComponentFactory( SomeComponent )
但我的下一步是能够使用名称(字符串)这样做。 ComponentFactoryResolver需要一个Type。是否有某种方法可以查找类型名称?我想通过注入框架必须有一些方法可以这样做,但我无法通过API文档建立连接。
答案 0 :(得分:1)
"问题"是你必须在主机组件中导入将要注入的每个组件。 让我们说:
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] );
我知道这不是你想要的,但这是我在当前正在工作的应用程序中这样做的方式。