首页 > 解决方案 > 尝试使用 ng-select 但出现错误

问题描述

我最近学习 angular-6 现在我正在尝试使用ng-select https://github.com/ng-select/ng-select。但我得到一个错误

src/app/subject.service.ts(20,27) 中的错误:错误 TS2339:“可观察”类型上不存在属性“过滤器”。

这是我的subject.service.ts

import { Injectable } from '@angular/core';
    import { Course } from './course'
    import { CourseService } from  './course.service';
    import { HttpClient, HttpHeaders, HttpEventType, HttpRequest, HttpErrorResponse, HttpEvent } from '@angular/common/http';
    import { Observable, asapScheduler, pipe, of, from,interval, merge, fromEvent } from 'rxjs';
    import { filter ,delay, map } from 'rxjs/operators';

    @Injectable({
      providedIn: 'root'
    })

    export class SubjectService {

      constructor(private c_service:CourseService, private http:HttpClient) { }

      getCourse(term: string = null): Observable<Course[]> {
           let items = this.requestCourse();
           console.log(items);
             if (term) {
                items = items.filter(x => x.CourseId.toLocaleLowerCase().indexOf(term.toLocaleLowerCase()) > -1);
            }
            return (items).pipe(delay(500));
        }

        requestCourse() {
          return  this.http.get<any>(`http://192.168.3.223:84/elearningapi/course_api.php?request=1`);
        }
    }

从这个请求http://192.168.3.223:84/elearningapi/course_api.php?request=1我得到这个

[  
   {  
      "CourseId":"C002",
      "CourseDescription":"Javascript"
   },
   {  
      "CourseId":"C003",
      "CourseDescription":"Math"
   },
   {  
      "CourseId":"C004",
      "CourseDescription":"English Language"
   },
   {  
      "CourseId":"C005",
      "CourseDescription":"IPS"
   },
   {  
      "CourseId":"C006",
      "CourseDescription":"IPA"
   },
   {  
      "CourseId":"C007",
      "CourseDescription":"C#"
   }
]

我该如何解决?提前致谢

标签: angularangular6

解决方案


RxJs 在版本 6 中改变了将运算符链接在一起的方式。在新版本中,您可以在使用 map 和 filter 等运算符之前使用它们,如下所示:

items = items.pipe(filter(x => x.CourseId.toLocaleLowerCase().indexOf(term.toLocaleLowerCase()) > -1));

推荐阅读