angular - 尝试使用 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#"
}
]
我该如何解决?提前致谢
解决方案
RxJs 在版本 6 中改变了将运算符链接在一起的方式。在新版本中,您可以在使用 map 和 filter 等运算符之前使用它们,如下所示:
items = items.pipe(filter(x => x.CourseId.toLocaleLowerCase().indexOf(term.toLocaleLowerCase()) > -1));