Я пытаюсь сделать службу api и назначить данные переменной, но переменная не обновляется и получает как неопределенное, когда я пытаюсь выполнить регистрацию после службы API.Угловая 2, переменная не обновляется внутри службы
import {Component,Input,Output,EventEmitter} from 'angular2/core';
import {NgClass,NgFor} from 'angular2/common';
import {Observable} from 'rxjs/Observable';
import {ChangeDetectionStrategy} from 'angular2/core';
import {ValuesPipe} from '../pipes/values';
import {ApiRequestService, Query} from '../services/apiRequestService';
@Component({
selector: 'browsePCLatestRelease', // <home></home>
directives: [NgClass,NgFor],
changeDetection: ChangeDetectionStrategy.OnPush,
pipes: [ ValuesPipe ],
styles: [ require('./browsePCLatestRelease.less') ],
template: require('./browsePCLatestRelease.html')
})
export class browsePCLatestRelease {
public arrayOfKeys;
pcLatestrelease:Array<any> ;
query: Query;
constructor(private _apiService: ApiRequestService) {
}
ngOnInit() {
this.query = this._apiService.createQuery('browsePC.getIssue');
this.query.params({
volume: '60',
issue: '50'
});
this._apiService.execute(this.query)
.subscribe(
data => this.pcLatestrelease=data,
error => console.log(error),
() => console.log('pcLatestrelease retrived')
);
console.log('this.pcLatestrelease');
console.log(this.pcLatestrelease); // logged as undefined
}
}
HTML
<div *ngFor = "#thisRelease of pcLatestrelease">
{{thisRelease.title}}
</div>
Может кто-то помочь мне, спасибо заранее.
Спасибо, это работает отлично, но я хочу использовать эту переменную в HTML, –
Это не должно быть проблемой. Угловой может бросить, если вы привяжете себя как 'pcLatestrelease.someProperty'. Вы можете исправить это, используя оператор Elvis, например 'pcLatestrelease? .someProperty', тогда Angular не пытается получить доступ к' .someProperty', пока значение 'pcLatestrelease' не будет иметь значения. –
обновлен с помощью HTML, переменная не обновляется в HTML и отражает новые данные. –