2017-02-21 7 views
4

Является ли привязка к Observable<enum> возможно подобным образом в Angular?Как привязать ngclass к наблюдаемому значению

<a [ngClass]="{selected: (mapToolBarMode$ | async) === 0 }" /> 

или

<a [ngClass]="{selected: (mapToolBarMode$ | async) === MapMode.Pan }" /> 

где mapToolBarMode$ является наблюдаемая

Это не кажется, что сделать что-либо в качестве наблюдаемых мутирует.

Я думаю, что это может быть связано с значение не доступны в конструкторе, если я делаю это работает, но я действительно не хочу, чтобы сделать это для каждого значения в MapMode перечислении:

private mapModes: typeof MapMode = MapMode; 
private isPanSelected = true; 
ngOnInit() { 
    this.mapToolBarMode.subscribe(v => { 
     this.isPanSelected = (v === this.mapModes.Pan); 
    }) 
} 

...

[ngClass]="{selected: isPanSelected }" 

Update оказывается, что это было связано с унаследованного кода, призывающих угловых компонентов. эти вызовы должны работать под контекстом ngZone, в противном случае нет велосипедного

+0

Конечно, это должно работать? Что такое «MapMode.Pan»? –

+0

Если это не сработает, возможно, попробуйте изменить его на «Oberservable » и выполните '===' в '.map()' в коде компонента? –

+1

Если вы можете сделать 'this.mapToolBarMode.subscribe', то ваша привязка должна, вероятно, быть' '(без' $ ') –

ответ

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