属性指令
Attribute directive
出于某种原因,我无法 select 这个问题的任何 angular4 标签。我正在使用 Angular 4.
我创建了一个属性指令:
import { Directive, ElementRef } from '@angular/core';
@Directive({
selector: '[SpDatePicker]'
})
export class DatepickerDirective {
constructor(public element: ElementRef) {
console.log(element.nativeElement);
}
}
但是如果我尝试使用它,我会收到以下错误:
Can't bind to 'SpDatePicker' since it isn't a known property of 'div'.
用法:
<div [SpDatePicker]></div>
如果我将 selector 声明更改为:
selector: '.spdatepicker'
并使用以下 HTML:
<div class="spdatepicker"></div>
它工作正常。我查看了 the docs,看不出我做错了什么。谁能告诉我吗?
我创建了一个 Plunker 来演示这个问题。
属性指令不需要 []
,这将导致 angular 将 SpDatePicker
视为 div
的 @Input property
。
正如@Maximus 所说,您仍然可以通过在指令中添加 @Input() SpDatePicker
来使用 [SpDatePicker]
。
Plunker demo(对于两者).
出于某种原因,我无法 select 这个问题的任何 angular4 标签。我正在使用 Angular 4.
我创建了一个属性指令:
import { Directive, ElementRef } from '@angular/core';
@Directive({
selector: '[SpDatePicker]'
})
export class DatepickerDirective {
constructor(public element: ElementRef) {
console.log(element.nativeElement);
}
}
但是如果我尝试使用它,我会收到以下错误:
Can't bind to 'SpDatePicker' since it isn't a known property of 'div'.
用法:
<div [SpDatePicker]></div>
如果我将 selector 声明更改为:
selector: '.spdatepicker'
并使用以下 HTML:
<div class="spdatepicker"></div>
它工作正常。我查看了 the docs,看不出我做错了什么。谁能告诉我吗?
我创建了一个 Plunker 来演示这个问题。
属性指令不需要 []
,这将导致 angular 将 SpDatePicker
视为 div
的 @Input property
。
正如@Maximus 所说,您仍然可以通过在指令中添加 @Input() SpDatePicker
来使用 [SpDatePicker]
。
Plunker demo(对于两者).