在另一个指令

时间:2016-05-10 20:12:55

标签: angular angular2-directives

我想通过使用host属性从另一个指令向一个元素添加一个指令,但似乎没有一种方法可以引用另一个指令。

@Directive({
    selector: '[one]',
    host: { '[two]': '"some-value"' }
    // How can I reference DirectiveTwo here?
})
export class DirectiveOne { }

@Directive({
    selector: '[two]'
})
export class DirectiveTwo { }

执行此操作时,我会获得标准"无法绑定到'两个'因为它不是一个已知的本土财产"错误。

引用和使用另一个指令的正确方法是什么?

1 个答案:

答案 0 :(得分:13)

指令由Angular实例化,用于仅与静态添加的HTML(元素,id,属性,类,...)匹配的选择器。
无法使用host@Component()装饰器的@Directive()参数来实例化指令。也无法使用ViewContainerRef.createComponent()(以前的DynamicComponentLoader

动态创建指令

支持对由Angular实例化的另一个指令的引用,因为在同一元素上静态添加了HTML。