2017-01-25 2 views
0

У меня есть данные, подобные приведенным ниже в моем mongoDB, и я получаю вызов службы, а затем подписываюсь на нее. Но я хочу отфильтровать перед этим подписку таким образом, чтобы я просто подписался на отфильтрованную базу данных в моем состоянии. Я хочу отфильтровать подтверждение того, что один из лагерей в данных из бэкэнд соответствует «this.idcalbuscador». (См. Файл .filter()). Я не смог этого достичь, может ли кто-нибудь помочь? Только новые для наблюдаемыхФильтр Наблюдения перед подпиской angular2

данных

{ 
    "_id" : ObjectId("588850b746f8ce140c1fe8cf"), 
    "idpertenalcalendario" : ObjectId("5885bfe452c6ba1d50f37f19"), 
    "enabled" : true, 
    "forma" : "Rombo", 
    "color" : "Red", 
    "type" : "point", 
    "descrip" : "ghghghgh", 
    "startDate" : "2017-01-15", 
    "nameHito" : "gjgjgjgg", 
} 

Code

//retrieve the datas 

this._hitoService.getHitos() 
    .filter(resp => resp.idpertenalcalendario === this.idcalbuscador) 
    .subscribe(hito1 =>{ 
     if (typeof this.nom_cal1 === "undefined"){ 
      swal("Atencion!", "Busca un calendario con el buscador del Side Menu") 
     }else { 
      drawtimeline1_1(this.hito1, this.nom_cal1); 
     } 
    }); 
+1

Что происходит не так? – PierreDuc

+0

@ PierreDuc Я не видел, чтобы какие-либо данные загружались на страницу ... все было пустым и ошибок не было. – Olusegun

+1

Можете ли вы также опубликовать реализацию 'this._hitoService.getHitos()'? И похоже, что вы ничего не делаете с переменной «hito1» внутри подписки. – PierreDuc

ответ

1

filter функция не вызывается для каждого элемента в массиве, как это, например, в потоке API Java. Он вызван для одиночного эмиттанса Наблюдаемого. Это означает, что resp, с которым вы работаете, в функции фильтра содержит массив и не a hito. Именно поэтому такое сравнение всегда будет возвращать ложь:

resp.idpertenalcalendario === this.idcalbuscador 

Это, по крайней мере, то, что я ожидал бы, по именам: getHitos возвращает массив Hito. Но Пьер Дык прав, это зависит от вашей реальной реализации.

Смежные вопросы