2017-07-25 197 views
1

無論出於何種原因,我無法爲此問題選擇任何angular4標籤。我採用了棱角分明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> 

如果我改變選擇DECL aration到:

selector: '.spdatepicker' 

並使用以下HTML:

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

它工作正常。我看過the docs,看不出我做錯了什麼。有人可以告訴我嗎?

我創建了一個Plunker來演示此問題。

+1

請使用

rickz

回答

2

對於屬性指令,您不需要[],這將導致角度考慮SpDatePicker@Input propertydiv


正如評論說@Maximus,你仍然可以通過添加@Input() SpDatePicker到你的指令中使用[SpDatePicker]


Plunker demo(對於兩種)

+0

謝謝。我現在感到很蠢 - 我沒有注意到他們沒有在文檔中使用[]作爲實際元素。 – john

+1

@john'[]'通常被認爲是**屬性綁定**。 :-) – Pengyy

+1

@john,但是這種方式'

'是可能的,如果你在SpDatePicker中定義了一個名爲'@Input()SpDatePicker'的輸入,那麼你嘗試的將會工作 –