我想通过使用host属性从另一个指令向一个元素添加一个指令,但似乎没有一种方法可以引用另一个指令。
@Directive({
selector: '[one]',
host: { '[two]': '"some-value"' }
// How can I reference DirectiveTwo here?
})
export class DirectiveOne { }
@Directive({
selector: '[two]'
})
export class DirectiveTwo { }
执行此操作时,我会获得标准"无法绑定到'两个'因为它不是一个已知的本土财产"错误。
引用和使用另一个指令的正确方法是什么?
答案 0 :(得分:13)
指令由Angular实例化,用于仅与静态添加的HTML(元素,id,属性,类,...)匹配的选择器。
无法使用host
或@Component()
装饰器的@Directive()
参数来实例化指令。也无法使用ViewContainerRef.createComponent()
(以前的DynamicComponentLoader
)
支持对由Angular实例化的另一个指令的引用,因为在同一元素上静态添加了HTML。