属性指令

时间:2017-07-25 02:39:46

标签: angular angular-directive

无论出于何种原因,我都无法为此问题选择任何angular4标签。我正在使用Angular 4。

我已经创建了一个属性指令:

import { Directive, ElementRef } from '@angular/core';

@Directive({
    selector: '[SpDatePicker]'
})
export class DatepickerDirective {

    constructor(public element: ElementRef) {
        console.log(element.nativeElement);
    }
}

但如果我尝试使用它,我会收到以下错误:

  

无法绑定到'SpDatePicker',因为它不是'div'的已知属性。

用法:

<div [SpDatePicker]></div>

如果我将选择器声明更改为:

selector: '.spdatepicker'

并使用以下HTML:

<div class="spdatepicker"></div>

工作正常。我看了the docs,看不出我做错了什么。有人能告诉我吗?

我创建了Plunker来证明这个问题。

1 个答案:

答案 0 :(得分:2)

对于属性指令,您不需要[],这会导致角度考虑SpDatePicker@Input property div

正如@Maximus所评论的那样,您仍然可以通过在指令中添加[SpDatePicker]来使用@Input() SpDatePicker

Plunker demo(两者都有)