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
внутри директивы. Есть идеи?