将指令指定为另一个指令的参数(插件)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将指令指定为另一个指令的参数(插件)相关的知识,希望对你有一定的参考价值。
我有一个“主机”指令,我想在其中显示 一个“插件”指令 多个可能的“插件”指令中的一个(比如,plugin1,plugin2,plugin3等),我希望host指令的容器指定或更改要作为参数显示的插件指令。
如果没有“主机”指令知道任何事情,这可以在角度完成 它 它正在显示哪个指令?在某种程度上,它就像ui-router,我们保留子视图占位符,并动态提供视图。但我希望这种灵活性与指令。
例如:
<div>
<host plugin="plugin1 plugin1-param-1 plugin1-param-2"></host>
</div>
<div>
<host plugin="plugin2 plugin2-param-1 plugin2-param-2"></host>
</div>
答案
是。您可以将host指令注入plugin指令。
为了便于配置,您可以将输入命名为与指令的属性名称完全相同。
@Directive({selector: '[plugin]'})
class Plugin {
@Input('plugin') config: any
constructor(@Host() private host: HostCmp) {}
}
您现在可以通过HostCmp
访问this.host
实例,配置将在this.config
中
通过使用host[plugin]
作为选择器,您可以进一步将插件的使用范围缩小到基于选择器的特定主机。
另一答案
我来自Java / .Net背景,所以我希望应用运行时“即插即用”模式。我认为翻译是我上述问题的答案。这是一个有用的链接:http://teropa.info/blog/2015/06/09/transclusion.html
以上是关于将指令指定为另一个指令的参数(插件)的主要内容,如果未能解决你的问题,请参考以下文章