【问题标题】:Converting Attribute Directive to Element in Angular 2在Angular 2中将属性指令转换为元素
【发布时间】:2017-09-20 18:04:50
【问题描述】:

我正在尝试了解 Angular 2 中提供的这个属性指令。

最初我以为我只能使用 Attribute 创建指令,但是当我尝试了一些东西时,我也能够使用 Elements 创建指令。

请参考以下我可以创建元素指令的代码

@Directive({
    selector: 'myDir'
})
export class MyDirective implements OnInit {
    @Input() prop1: boolean;
    @Input() prop2: boolean;
    constructor() {
    }
    ngOnInit(): void {
        console.log(this.prop1);
        console.log(this.prop2);
    }
}

可以像下面这样使用

<myDir [prop2]="true">Hello World</myDir>

呈现的 HTML

问题:

  • 如果它基于您提供的选择器,为什么它被称为属性指令。

    例如:

    • 如果我提供 [myDir],那么我可以将其用作属性
    • 但如果我使用 myDir 作为选择器,这将使其成为元素指令。

【问题讨论】:

    标签: javascript angular angular-directive


    【解决方案1】:

    仅当您使用属性选择器时,我才称为属性指令。

    如果您使用的是类或元素选择器,则它不再是属性指令。

    一般来说,指令只是被称为指令。

    【讨论】:

    • 不,不支持 id 选择器。
    • 是否有任何具体原因...据我所知,指令或组件中提供的选择器是 CSS 选择器...我们可以将其设为元素、类、属性..那么为什么不id(with #) as id 也是一个有效的css选择器
    • 它们不是 CSS 选择器。只有元素、属性和类选择器。您也不能使用空格、&gt;+ 之类的选择器组合符(仅针对一个元素的选择器)。
    • #myDir 也将只针对一个元素,例如 .myDir
    • 不知道原因,但不支持。您可以添加任何唯一的属性,因此这不是什么限制。
    猜你喜欢
    • 2016-09-11
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 2014-12-17
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多