我已经在Angular2中看到了指令,它们以两种似乎相同的方式被命名:


第一个@Directive({ selector: '[myDirective]' })

第二个@Directive({ selector: 'myDirective' })


两者有什么区别?

我也看过以下指令,这让我更加困惑

@Directive({
    selector: "[ngModel][typeValidate]",
    host: {
        "(input)": "validate($event)"
    }
})


有人可以阐明吗?

最佳答案

selector装饰器的@Directive属性是CSS selector-see "Directive Configuration" at the cheatsheet。并且,这样:


选择器[myDirective]将所有具有属性myDirective的元素匹配。


示例:<some-tag myDirective="doesnt matter"></some-tag>

选择器myDirective匹配所有具有myDirective作为标记的元素


示例:<myDirective></myDirective>

同样,[ngModel][typeValidate]将所有具有属性ngModelmyDirective的元素匹配。


示例:<some-tag myDirective="a" ngModel="b"></some-tag>

关于angular - 命名指令时选择器的名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43234031/

10-12 15:11