【问题标题】:How to load dynamic data using node package "ng-multiselect-dropdown"如何使用节点包“ng-multiselect-dropdown”加载动态数据
【发布时间】:2021-01-25 21:39:52
【问题描述】:

在 Angular(6) 项目中,我使用名为 ng-multiselect-dropdown 的节点包作为下拉输入字段。我面临困难 在下拉列表中加载动态数据。有没有办法在使用 ng-multiselect-dropdown 时加载动态数据或者有没有 类似的节点包,提供与 ng-multiselect-dropdown 相同的功能。

谢谢。

<ng-multiselect-dropdown [data]="userDropdownList" 
  [(ngModel)]="selectedItems" [settings]="dropdownSettings" 
  (onSelect)="onItemSelect($event)"
  (onSelectAll)="onSelectAll($event)">
</ng-multiselect-dropdown>


 userDropdownList = [];
 ngOnInit() {
 this.departmentService.getUsers(this.authService.getUser().client_id)
  .subscribe((response: any) => {
    for (let data of response.data) {
      this.userDropdownList.push({ '_id': data._id,
         'name': data.firstname + ' ' + data.lastname })
    }
  },
  error => {
    console.log("error :", error);
  })
}

【问题讨论】:

  • 什么问题,服务正常吗?
  • 服务工作正常。我从 HTTP 请求中获取的数据未显示在下拉列表中。
  • 如果我像下面的代码那样声明对象的静态数组,那么它就可以工作。但从 http 请求,它不起作用: this.userDropdownList = [ { _id: "5ae89f362c6f957fe0ddf173", name: "Raja Khan" }, { _id: "5ae96638dbceb53af3344d1b", name: "Ubaid Showkat" }, { _id: "5afd5ec12e275b6736bbda82 ”,名称:“Keninteiten Daz”},{_id:“5b2b752ddd444f78c3f775c5”,名称:“Calvin Shehryar”},{_id:“5b2c993116e48626a589ab70”,名称:“test s”}];
  • 代码看起来不错,您是否尝试在 .subscribe((response: any) =&gt; { 中声明相同的静态内容?
  • 我认为图书馆现在没有这个功能。检查此问题 (github.com/NileshPatel17/ng-multiselect-dropdown/issues/5)。

标签: angular angular6


【解决方案1】:

推送不起作用,请阅读角度的锄头变化检测工作, push 不要创建新的参考,所以角度变化检测不会检测到它,因此它不起作用

this.users.push({item_id:1,item_text:"test"})

上面的代码不起作用,所以你可以这样做

this.users = this.users.concat({item_id:1,item_text:"test"})

this.tempUsers.push({item_id:1,item_text:"test"})

this.users = this.tempUsers

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多