Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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/reporting-services/3.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
IndexOf函数现在可以正常工作了吗?Javascript(使用过滤组件)_Javascript_Angular_Typescript - Fatal编程技术网

IndexOf函数现在可以正常工作了吗?Javascript(使用过滤组件)

IndexOf函数现在可以正常工作了吗?Javascript(使用过滤组件),javascript,angular,typescript,Javascript,Angular,Typescript,首先,我知道有很多关于这个指数的问题,但是我还没有找到解决我自己问题的方法。 HelloComponent、ByeComponent是组件。数组的元素是角度组件,而您在单击事件处理程序中发送字符串'ByeComponent'和'HelloComponent' 一个快速修复方法是使用对象而不是数组,并将对象属性键作为事件处理程序参数传入 试试下面的方法 @组件({ 选择器:“我的应用程序”, 模板:` 渲染组件 渲染Hello组件 ` }) 导出类AppComponent{ @ViewChild(

首先,我知道有很多关于这个指数的问题,但是我还没有找到解决我自己问题的方法。
HelloComponent、ByeComponent是组件。

数组的元素是角度组件,而您在单击事件处理程序中发送字符串
'ByeComponent'
'HelloComponent'

一个快速修复方法是使用对象而不是数组,并将对象属性键作为事件处理程序参数传入

试试下面的方法

@组件({
选择器:“我的应用程序”,
模板:`
渲染组件
渲染Hello组件
`
})
导出类AppComponent{
@ViewChild(AdDirective)adHost:AdDirective;
公共组件={
“hello组件”:hello组件,
“bye组件”:ByeComponent
};
public currentComponent=null;
构造函数(专用componentFactoryResolver:componentFactoryResolver){}
公共渲染(组件:字符串):无效{
const currentComponent=this.components[component];
让componentFactory=this.componentFactoryResolver.resolveComponentFactory(
当前组件(如有)
);
让viewContainerRef=this.adHost.viewContainerRef;
viewContainerRef.clear();
让componentRef=viewContainerRef.createComponent(componentFactory);
}
}

我已经修改了你的

当然你只需要:让index=this.components[component]?只是一个小问题。为什么不能使用路由器出口并使用两个不同的路由来显示两个不同的组件?与单击RenderComponent1时一样,将它们路由到Component1,单击RenderComponent2时,将它们路由到Component2并相应地显示模板。对你来说,这不是一个好的解决办法吗?我看没有其他更容易的办法了。扩展运算符赋值
[a,b]=[1,2]
不适用于成员变量属性。您可能需要单独创建20个不同的变量,并直接从模板发送它们。