2016-10-27 5 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; 
    } 

    // ... 
} 

ПРОБЛЕМА: метод сеттера (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> 

 Смежные вопросы

  • Нет связанных вопросов^_^