代码之家  ›  专栏  ›  技术社区  ›  dEs12ZER

ng select in ANGLAR5问题:错误类型错误:对象(…)不是NgDropdownPanelComponent上的函数。ngOnInit(ng-select.js

  •  9
  • dEs12ZER  · 技术社区  · 7 年前

    我正在我的项目angular5中使用ng select 2.0.0,如 this link ,我可以从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 select被阻止了一样。

    这是我的项目代码。组成部分html

    <ng-select  *ngIf="_listClients"
                 [items]="listClient"
                  bindLabel ="nom"
                  bindValue ="id"
                [(ngModel)]="selectedPersonId">
    
    </ng-select>
    
    <p>
      Selected city ID: {{selectedPersonId | json}}
    </p>
    

    这是文件项目。组成部分ts

        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 ');
           })
    
      }
    
    }
    

    有什么帮助吗?

    3 回复  |  直到 7 年前
        1
  •  26
  •   Community Mohan Dere    5 年前

    (只需复制粘贴我评论中的答案即可结束问题)

    我想, ng-select v2.0.0 有此问题。我在GitHub repo中发现了2个问题请求。

    解决方法:

    尝试将版本降级为v1。4.1。

    npm uninstall @ng-select/ng-select 
    npm i -s @ng-select/ng-select@1.4.1
    

    编辑:(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
    
        2
  •  3
  •   Mrvonwyl    7 年前

    如回购协议自述中所述 https://github.com/ng-select/ng-select#v200 :

    最新版本的目标是Angular v6,因为它使用了新的RxJS 正在中断更改。如果您使用的是Angular v5,则可以使用ng select v1。或安装rxjs compat Compatibility包。我们将支持 v1。x提供了最新的错误修复,以便于迁移。对于v1。x您可以 请参阅1。x分支。

    但是使用v2。rxjs compat的0.0对我不起作用。我使用的是Angular v5。2.9。

        3
  •  0
  •   Banu S    3 年前

    以下是您为各个角度安装的ng select版本。十、

    1. 如果(>)=13.0.0和lt;14.0.0-ng select版本应为v8。十、
    2. 如果(>)=12.0.0和lt;13.0.0-ng select版本应为v7。十、
    3. 如果(>)=11.0.0和lt;12.0.0-ng select版本应为v6。十、
    4. 如果(>)=10.0.0和lt;11.0.0-ng select版本应为v5。十、
    5. 如果(>)=9.0.0和lt;10.0.0-ng select版本应为v4。十、
    6. 如果(>)=8.0.0和lt;9.0.0-ng select版本应为v3。十、
    7. 如果(>)=6.0.0和lt;8.0.0-ng select版本应为v2。十、
    8. 如果为v5。x、 x-ng选择版本应为v1。十、