【问题标题】:create a Cascading dropdown on Angular在 Angular 上创建级联下拉菜单
【发布时间】:2021-03-10 02:44:45
【问题描述】:

我尝试使用此示例在 Angular 上创建一些级联下拉菜单

https://stackblitz.com/edit/cascading-dropdown-angular

第一个下拉菜单可以,但第二个不可以。 你能帮我吗?

我想将用户的所有文件夹放在一个数组中,以便将它们用于我的第二个列表,然后可能对列表进行排序

非常感谢

component.html

....

  <div class="">
    <select (change)="onSelect($event.target.value)" class="form-control custom-select" >
       <option value="0">--Enfant--</option>
       <option *ngFor="let users of UserDatas.data.User" value= {{users.userId}}>{{users.userName}}</option>
    </select>
  </div>
                            
  <div class="">
     <select class="form-control custom-select">
        <option value="0">--Date--</option>
        <option *ngFor="let folder of FolderData " value= {{folder.userId}}>{{folder.data}} 
        </option>
     </select>
  </div>

component.ts


  UserDatas: any = [];
  FolderData: any = [];

......

  onSelect(userId) {
      for(var i in this.UserDatas.data.User) {
        if(this.UserDatas.data.User[i].userId === userId ){
          this.FolderData.push(this.UserDatas.data.User[i].folders);
        });
          break;
        }
  }

Userdatas

......

"data":{
        "ent":"MyEnt",
        "User":[
          {
            "userId":"aaaa",
            "userName":"user1",
            "folders":[
                {
                "userId":"aaaa",
                "data":"mydata1"
                },
                {
                "userId":"aaaa",
                "data":"mydata2"
                }
              ],
          },
          {
          "userId":"bbbb",
          "userName":"user2",
          "folders":[
              {
              "userId":"bbbb",
              "data":"mydata11"
              },
              {
              "userId":"bbbb",
              "data":"mydata22"
              }
            ],
          },
    ],

    ........

感谢您的帮助

【问题讨论】:

  • 您的 html 引用 {{folder.mydata}} 但您的数据只有数据,将其更改为 {{folder.data}}
  • 谢谢,但这只是一个写入错误,它是数据而不是 mydata

标签: javascript angular typescript cascadingdropdown


【解决方案1】:

Folderdata 应该是单层对象数组,如下所示:

[ {...}, {...} ]

但是这段代码正在把它变成一个数组数组:

this.FolderData.push(this.UserDatas.data.User[i].folders)

导致:

[ [ {...}, {...} ] ]

【讨论】:

  • 好的,我明白了,但我能做什么?替换“文件夹数据:任何= [];”通过“文件夹数据:任何;” ?谢谢
猜你喜欢
  • 2013-09-22
  • 2022-08-11
  • 2011-03-03
  • 1970-01-01
  • 1970-01-01
  • 2018-04-25
  • 2013-09-14
  • 2015-11-30
  • 1970-01-01
相关资源
最近更新 更多