У меня есть сервис, который должен вызывать HTTP, чтобы получить данные, обрабатывать эти данные и возвращает преобразованные данные в наблюдаемомAngular2, наблюдаемая услуга, которая является лучшей практикой
_callHttp(): Observable<Array<element>> {
return this._http.get(this._Url).map(res => this._extractData(res));
}
_extractData(res): element[] {
return res.json().map(t => new element().fromJson(t));
}
getOrganigramByName(name, language): Observable<element[]> {
let list = new Array<element>();
this._callHttp().subscribe(res=> list.push(res));
let filteredList: Array<element> = this.filterList(list,name, language);
return Observable.of(filteredList);
}
filterList(list,name,language):Array<element>{
let result : new Array<element>();
list.forEach(res => {
if (res.name==="albert"){
result.push(res);
}
})
return result
}
В методе filterList , список пуст Я не хочу включать метод filterList в подписи
Каков наилучший способ сделать это?
* некоторые поля elment используются как element.name *: что это значит? Что такое код? –
Элемент - это класс. элемент класса экспорта {name: string, lastname: string, ...}, поэтому я хочу получить доступ к элементу element.name – Florence
В функции getOrganigramByName вы определяете 'list', привязываете его в обратном вызове' subscribe', но он выглядит как вы никогда не используете его. Какой смысл создавать его ни для чего? ^^ –