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



我有一个"主机"指令,我希望在其中显示

a plugin'指令一个来自多个可能的"插件"指令的指令(例如插件,plugin2,plugin3等),我希望主机指令的容器指定或更改要显示为参数的插件指令。

可以在没有"主机"指令的情况下以角度完成此操作。从某种意义上说,就像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> 

是。您可以将主机指令注入插件指令。

为了易于配置,您可以将输入命名与指令的属性名称完全相同。

@Directive({selector: '[plugin]'})
class Plugin {
  @Input('plugin') config: any
  constructor(@Host() private host: HostCmp) {}
}

您现在可以通过this.host访问HostCmp实例,并且配置将在this.config

您可以通过使用host[plugin]作为选择器,将插件的使用仅基于选择器的特定主机。

我来自Java/.net背景,因此我希望应用运行时"插件和播放"模式。我认为tranclusion是我上面问题的答案。这是一个有用的链接:http://teropa.info/blog/2015/06/09/transclusion.html

最新更新