当前位置: 首页 > 知识库问答 >
问题:

在Angular 7中,select dropdown值id传递给ngFor列表中的所有select dropdown

百里景山
2023-03-14

我使用ngFor获取标签和选择下拉列表,特别是在Angular7中的div标签。但是,如果我从任何一个选择下拉列表中选择选项,它的更改将发生在div标记中的所有选择下拉列表中

<div class="row">
    <ng-container *ngFor='let item of Bedroom.PBeda'>
        <div class="col-lg-3 col-md-6 col-sm-6 col-12">
            <span class="font-wt-600">{{item.PBedName}}</span><br /><br />
        </div>
        <div class="col-lg-3 col-md-6 col-sm-6 col-12">
            <select class="form-control" name="value" id="bedID{{item.PBedID}}"[(ngModel)]="beds.value (ngModelChange)="onChangeBedsDetails($event,item.PBedID)">
                <option value="0">Select</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
            </select>
        </div>
    </ng-container>
</div>

共有1个答案

伍成仁
2023-03-14

所有下拉项值都在变化的原因是,所有下拉项的ngmodel都相同,而是将值存储在一个数组中,如下所示:

组件HTML:

<div class="row">
    <ng-container *ngFor='let item of Bedroom.PBeda'>
        <div class="col-lg-3 col-md-6 col-sm-6 col-12">
            <span class="font-wt-600">{{item.PBedName}}</span><br /><br />
        </div>
        <div class="col-lg-3 col-md-6 col-sm-6 col-12">
            <select class="form-control" name="value" id="bedID{{item.PBedID}}" 
                    [(ngModel)]="beds.value[item.PBedID]" (ngModelChange)="onChangeBedsDetails($event,item.PBedID)">
                <option value="0">Select</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
            </select>
        </div>
    </ng-container>
</div>

组件TS:

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  name = 'Angular';
  beds: any = {
    value: []
  }
  Bedroom: any = {
    PBeda: [
      {
        PBedID: 1,
        PBedName: 'hello'
      },
      {
        PBedID: 2,
        PBedName: 'hello2'
      }
    ]
  }

  onChangeBedsDetails(event, id) {
    console.log(this.beds.value[id]);
  }
}

斯塔克布利茨链路

 类似资料:
  • 问题内容: 我想按值将列表传递给函数。默认情况下,列表和其他复杂对象通过引用传递给函数。这是一些目标: 可以写得短些吗?换句话说,我不想更改 ad 。 问题答案: 您可以使用,但是对于包含列表(或其他可变对象)的列表,您应该使用: 等价于或,并返回列表的浅表副本。 何时使用:

  • 问题内容: 在对MVC中的服务器的AJAX请求中,如何将ID列表传递给控制器​​的动作函数? 我接受是否使用HTML帮助程序。 我知道,当涉及到简单的类型,如MVC的模型绑定没有问题,和。 就像我必须在动作中使用和数组一样吗? 我不在乎我是否必须使用或者即使字符串我或我总是可以将它们转换。我只需要它们在服务器上。我的列表ID目前为空。 Javascript: MVC动作: 编辑: 添加了我的AJA

  • 我有一个包含两列的数据帧,一列是数据,另一列是该数据字段中的字符计数。 我想根据count列中的值更改列数据的值。如何实现这一点?我尝试使用一个udf: 这似乎是失败的,这是正确的做法吗?

  • 但在保存方法内: 现在它总是打印“列表是空的”。 我尝试不使用,我尝试使用List List而不是,我尝试将它作为和方法参数更改传递到列表,然后没有任何东西让我能够将这一串字符串转移到方法中,在方法中它仍然是空的。 如何将传递到方法中,以便它将在beautifulList中传递值,并且我可以在方法中使用这些值?

  • 我正试图添加一个新列到spark dataframe中,如下所示: 我试图将上面的列值列表作为新列传递给dataframe,并尝试对该新列执行sha2,并尝试执行varchar(64)。

  • 如果ngFor循环使用带有then/else语法的模板,如何将ngFor循环中的当前变量传递给ngIf? 当内联使用时,它们似乎通过罚款,但不能从模板访问,例如: 模板似乎根本无法访问,但如果内联使用,它可以工作。 在下面的链接中有一个工作和不工作版本的完整例子