Felino
@Felino

Ошибка Angular filter?

import {Component, Input, OnInit} from '@angular/core';
import {TicketsService} from '../../share/service/tickets.service';

@Component({
  selector: 'anv-list-won',
  templateUrl: './list-won.component.html',
  styleUrls: ['./list-won.component.css']
})

export class ListWonComponent implements OnInit {

  @Input()
  ticket:any = [];
  Search='';
  constructor(private ticketsService:TicketsService){}

  ngOnInit(){
    this.ticketsService.getWinTickets().subscribe(ticket =>{

      this.ticket=ticket.filter(c=>c.win==true);
      console.log(this.ticket)
    });
  }

}

<h1 class="center-align">Won</h1>

<div class="row ">
  <div class="input-field col s3">
    <input id="first_name" class="validate" [(ngModel)]="Search">
    <label class="active" for="first_name">Search Won</label>
  </div>
</div>

<div >
<ul class="collection with-header" >
  <li class="collection-item" *ngFor="let tiket of ticket | search:Search" >
    <div>{{tiket.payeer}}</div>
  </li>
</ul>
</div>


import {Pipe, PipeTransform} from '@angular/core';

@Pipe({
  name:'search'
})
export class SearchPipe implements PipeTransform{
  transform(ticket,value){
    return ticket.filter(
      c=>c.ticket.includes(value)
    );
}

}


ERROR TypeError: Cannot read property 'includes' of undefined
at search.pipe.ts:9
at Array.filter ()
at SearchPipe.push../src/app/share/service/search.pipe.ts.SearchPipe.transform (search.pipe.ts:8)
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
0xD34F
@0xD34F
А как выглядит элемент массива ticket? В смысле - есть ли у него свойство ticket, по которому вы пытаетесь фильтровать? Я бы предположил, что вы просто немного запутались в именах свойств и вместо несуществующего ticket (странно же - массив и свойства его элементов имеют одинаковые имена) должно использоваться какое-то другое свойство... например payeer, которое вы выводите в шаблоне. Или ещё что-то.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы