1
我創建了一個調用api來獲取一些數據的服務。我想把它返回給調用組件。Angular 2 - 將數據從服務傳遞到組件
這是我有:
SomeComponent() {
someData = string;
constructor(
private _configService: SomeService
)
{
var value = this._configService.getKey('some-key');
console.log(value);
}
}
然後,我有一個服務:
export class ConfigService {
response:any;
constructor(private _http:Http) {}
getConfig(): Observable<any>
{
return this._http.get('src/config/config.json')
.map(response => response.json()).publishLast().refCount();
}
getKey(key:string) {
this.getConfig()
.subscribe(
data => {
if (data[key] != 'undefined')
{
return data[key]
} else {
return false;
}
},
error => {
return false;
}
);
}
}
的想法是,我可以調用方法信息getKey( '一些鑰匙' ),如果該鍵存在於返回的json數組中,則返回數據。如果不是,則返回false。
當這個運行時,我可以看到服務中返回的對象,但它沒有被返回到組件,而是我得到「未定義」。
什麼是正確返回這個過程?
好吧 - 給這個一去,現在收到此錯誤:類型錯誤:無法讀取未定義的屬性「訂閱」 – HappyCoder
哦,我錯過了'getKey'方法中的'return'。抱歉!我相應地更新了我的答案...... –