1
我有一個Angular2組件,並且我需要使用webservice返回的一些數據填充接口的屬性。 我有這樣的代碼:Angular2:等待顯示組件之前的服務返回響應
ngOnInit() {
this.services.callMyService().subscribe(
response => this.response = response,
error => alert(error),
() => this.initInterface()
)
}
initInterface() {
this.myInterface= {
field1: '',
field2: 'someData',
fieldFromService: this.response.field
};
}
但似乎之前服務已做的工作是組件顯示。事實上,如果我嘗試訪問例如field1,我得到一個錯誤:
error_handler.js:47 EXCEPTION: Cannot read property 'field1' of undefined
怎麼了?
移動'this.initInterface();'在成功呼叫回線'this.response = response'之後。 –
也嘗試初始化你的對象('this.myInterface = {field1:'',field2:'',fieldFromService:''};')在你的initInterface() –
之外你必須使用* ngIf =「myInterface」 html代碼來檢查數據是否到達。如果您使用* ngIf,您將不會面臨未定義的錯誤。嘗試一下 –