Angular2: представление не обновляется изнутри подписки
У меня есть простой компонент angular2 (rc1), который подписывается на услугу. Когда служба обновляет подписку, я могу зарегистрировать результат в подписке компонента, но представление не обновляется.
Первоначально я подозревал, что мой внутреннийthis
не привязан к внешнему, но я использую жирную стрелку наsubscribe
Обратный звонок, а также попробовал старыйlet self = this
на первой строке конструктора, а затем делатьself.SuccessMessage = result
но безрезультатно.
Нужно ли как-то форсировать обнаружение изменений? Вот мой компонент:
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;
})
}
}
В настоящее время мое мнение имеет только{{ successMessage | json }}
в этом. Опять же, он правильно отображает значение «до», но не изменяется, когда подписка получает объект результата.