Angular2: a visualização não é atualizada de dentro de uma assinatura
Eu tenho um componente angular2 (rc1) simples que assina um serviço. Quando o serviço atualiza a assinatura, posso registrar o resultado na assinatura do componente, mas a exibição não é atualizada.
Minha suspeita inicial era que meu interiorthis
não estava ligado ao exterior, mas estou usando uma seta gorda nosubscribe
retorno de chamada e também tentou o antigolet self = this
na primeira linha do construtor e depois fazendoself.SuccessMessage = result
para nenhum proveito.
Preciso forçar a detecção de alterações de alguma forma? Aqui está o meu componente:
import {Component} from 'angular2/core';
import {Subscription} from 'rxjs/Subscription';
import {UploaderService} from './uploader.service';
@Component({
selector: 'aoma-uploader-status-mini',
providers: [],
viewProviders: [],
templateUrl: './app/uploader/mini-uploader-status.component.html'
})
export class MiniUploadStatusComponent {
subscription:Subscription;
successMessage:any = {};
constructor(private _uploaderService: UploaderService) {
// view correctly shows this value:
this.successMessage.serverMessage = 'before ';
this.subscription = _uploaderService.fileSuccess$.subscribe(result => {
// this fires and logs the result correctly:
console.log('the mini uploader: type of result', result);
// view is never updated here
this.successMessage = result;
})
}
}
Atualmente, minha visão tem apenas{{ successMessage | json }}
iniciar. Novamente, ele exibe corretamente o valor 'before', mas não muda quando a assinatura obtém o objeto de resultado.