首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角度9-在可观测的目标阵列中求值

角度9-在可观测的目标阵列中求值
EN

Stack Overflow用户
提问于 2021-03-30 14:57:43
回答 1查看 242关注 0票数 0

我有一个servers对象数组,在这个数组中,我有另一个可观察到的对象数组,它的关键是

我有另一个securitygroupsArray,数组,在该数组中,我获得了获取所有securityGroups.的API。

我需要在securityGroups键中查看服务器数组中该服务器上安全组的所有名称,并在一个选项中只显示其他数组securityGroups的ngfor名称,这些名称是不同的。我试着使用3 ngFor,但是没有用。你能帮帮我吗?

我的组件代码:

代码语言:javascript
复制
ngOnInit(): void {
    forkJoin(
      this.serverService.getServer(),
      this.securityGroupService.getSecurityGroups())
      .pipe(takeWhile(() => this.alive))
      .subscribe(([servers, groups]) => {
        this.servers = servers.map((item) => ({
          ...item,
          securityGroups: this.serverService.getServerById(item.id)
            .pipe(map(server => server["security_groups"]))
        }))
        this.securityGroupArray = groups['security_groups'].map((item) => ({
          ...item,
          expanded: false,
        }))
      }

我的html代码:

代码语言:javascript
复制
<div class="form-group" [formGroup]="form">
    <div class="col-sm-12">
      <select
        class="form-control border-primary"
        formControlName="server"
      >
        <option [value]="''">select</option>
        <span *ngFor="let group of securityGroupArray">
            <option *ngFor="let server of servers" [value]="server.id">
              <span *ngFor="let secGroup of server.securityGroups | async">
                {{ secGroup.name !== group.name ? server.name : ''}}
              </span>
            </option>
        </span>
      </select>
    </div>
  </div>

我的服务器阵列:

代码语言:javascript
复制
{id: "1879f47f-1c5e-464b-bb76-e7cc13ef426e", name: "hello", flavor: {…}, securityGroups: Observable}
,

{id: "b9c7e32a-bf99-4250-83cb-13523f9c1604", name: "test01", flavor: {…}, securityGroups: Observable}

我的securityGroupArray

代码语言:javascript
复制
{id: "b339774a-9ff7-4136-a0ca-94dd998b8dcc", name: "hello", description: "", …}
,

{id: "e96d271c-aa69-4a61-b0ca-63bfa8c1293e", name: "new09", description: "", …}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-30 15:20:44

<span>不是<select>的有效子级,而是使用<ng-container>

代码语言:javascript
复制
<div class="form-group" [formGroup]="form">
  <div class="col-sm-12">
    <select
      class="form-control border-primary"
      formControlName="server"
    >
      <option [value]="''">select</option>
      <ng-container *ngFor="let group of securityGroupArray">
          <option *ngFor="let server of servers" [value]="server.id">
            <span *ngFor="let secGroup of server.securityGroups | async">
              {{ secGroup.name !== group.name ? server.name : ''}}
            </span>
          </option>
      </ng-container>
    </select>
  </div>
</div>

<ng-container>是一个“虚拟”DOM元素;它不会呈现到实际的DOM中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66873428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档