将指令指定为另一个指令的参数(插件)

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

以上是关于将指令指定为另一个指令的参数(插件)的主要内容,如果未能解决你的问题,请参考以下文章

这些角度电子邮件指令代码片段如何连接

角度指令可以将参数传递给指令属性中指定的表达式中的函数吗?

自动删除 Delphi IFDEf 编译器指令

angular2采用自定义指令(Directive)方式加载jquery插件

exec命令

指令loadx是哪一种类型