我有一個非常簡單的測試組件,它看起來是這樣的:角2局部變量認購()方法
@Component({
selector: "test-component",
template: "<div>Test</div>",
})
export class TestComponent implements OnInit {
private test : number = 0;
private service : ClientsService;
constructor(s : ClientsService) {
this.service = s;
}
public ngOnInit() {
this.service.loadAllClients().subscribe(d => {
this.test = 1;
});
let comp = this;
}
}
客戶服務返回可觀察到的,但我的問題是關於「測試」變量。在組件加載之後,第一個和第一個斷點被命中,'test'的值爲0 但是,當'subscribe()'中的斷點被命中時,'test'變得未定義。在lambda內完成的任何分配都不會生效。
我在這裏錯過了在'subscribe()'中做適當的賦值?
我不認爲你錯過了任何東西。我認爲通過編譯TypeScript獲得的實際JavaScript代碼使用另一個不是'this'的變量來引用回調中的組件。在控制檯中打印該值,並查看它是否正確打印。 –