2016-10-27 33 views
0

我創建了一個結構SpinnerDirective,我使用的是這樣的:如何綁定到另一個屬性從結構指令中

<div *spinner="'spinner1'" spinnerMessage="Loading many things..."> 
    <p>Hide this while loading...</p> 
</div> 

該指令的代碼如下所示:

@Directive({ 
    selector: '[spinner]' 
}) 
export class SpinnerDirective { 
    private _defaultMessage = 'Loading...'; 

    @Input('spinner') spinnerName: string; 

    @Input('spinnerMessage') set message(messageStr: string){ 
    console.log('setting message of', messageStr); 
    this._defaultMessage = messageStr || this._defaultMessage; 
    } 

    // ... 
} 

問題:setter方法(set message)永遠不會被調用。

我懷疑這是因爲角「desugars」我的模板如下:

<template [spinner]="'spinner1'"> 
    <div spinnerMessage="Loading many things..."> 
    <p>Hide this while loading...</p> 
    </div> 
</template> 

但我仍然不知道如何從指令中訪問spinnerMessage。任何想法?

回答

0

以下語法應工作:

<div *spinner="'spinner1'; message: 'Loading many things...'"> 
    <p>Hide this while loading...</p> 
</div> 
相關問題