ng-select в Angular5 проблема: ошибка TypeError: Object (...) не является функцией в NgDropdownPanelComponent.ngOnInit (ng-select.Яш
Я работаю с ng-select 2.0.0 в моем проекте angular5, как в этой ссылке , я могу получить результаты от загрузки API rest spring, но я ускоряю проблему, я получаю эту ошибку, когда я нажимаю на ng-select:
ERROR TypeError: Object(...) is not a function
at NgDropdownPanelComponent.ngOnInit (ng-select.js:1450)
at checkAndUpdateDirectiveInline (core.js:12352)
at checkAndUpdateNodeInline (core.js:13876)
а также я не могу выбрать информацию ( в данном случае атрибут "nom"), которую я хочу, это похоже на то, что выбор ng заблокирован или что-то вроде этого .
Это мой код для проекта.деталь.HTML-код
<ng-select *ngIf="_listClients"
[items]="listClient"
bindLabel ="nom"
bindValue ="id"
[(ngModel)]="selectedPersonId">
</ng-select>
<p>
Selected city ID: {{selectedPersonId | json}}
</p>
Это файл проект.деталь.ТС
import {Component, OnInit, ViewChild} from '@angular/core';
import {ActivatedRoute, Router} from '@angular/router';
import {ProjetService} from '../../../../../service/projet.service';
import {Projet} from '../../Models/Projet';
import { ModalDirective } from 'ngx-bootstrap/modal';
import 'rxjs/add/operator/map';
import {ClientService} from '../../../../../service/client.service';
@Component({
selector: 'app-projects',
templateUrl: './projects.component.html',
styleUrls: ['./projects.component.scss']
})
export class ProjectsComponent implements OnInit {
selectedPersonId:number = null;
_listClients :any;
constructor(private router:Router,
private projetSevice:ProjetService,
private clientServ:ClientService,
private route: ActivatedRoute) { }
ngOnInit() {
this.clientList();
}
get listClient() {
return this._listClients ? this._listClients.map(item => {
return {id: item.id, prenom : item.prenom , nom : item.nom}
}) : [];
}
clientList(){
this.clientServ.getListClients()
.subscribe((data:any)=>{
this._listClients=data;
},err=>{
console.log('this is error ');
})
}
}
помочь ?
2 ответов
(просто скопируйте вставку ответа из моего комментария, чтобы закрыть вопрос)
думаю,ng-select v2.0.0
этот вопрос. Я нашел 2 запроса на выпуск в репо GitHub.
решение:
попробуйте понизить версию до v1.4.1.
npm uninstall @ng-select/ng-select
npm i -s @ng-select/ng-select@1.4.1
EDIT: (25.05.18)
существует проблема для взлома изменений из Rxjs 6.0
. Если вы используете Angular v5
установить ng-select v1.x
или установить ng-select v2.0+
С rxjs-compat
.
npm i -s @ng-select/ng-select@1.x
//or
npm i -s @ng-select/ng-select@latest rxjs-compat
Как указано в readme РЕПО https://github.com/ng-select/ng-select#v200:
последняя версия нацелена на угловой v6, так как он использует новый RxJS, который имеет критическое изменение. Если вы используете Angular v5, вы можете использовать ng-select В1.x или установите пакет совместимости rxjs-compat. Мы будем поддерживать В1.x с последними исправлениями ошибок, чтобы облегчить миграцию. Для v1.X вы можете ссылаются на 1.х филиал.
однако с помощью v2.0.0 с RxJS-compat не работал на меня. Я использую угловой v5.2.9.