arrays - 传递用户选择的数组
问题描述
我想传递用户检查的数据。我现在的问题..它通过了所有..这是我的演示代码和stackblitz
HTML
<div class="row" *ngFor="let item of modules; let i = index;">
<div class="col-md-1 align-center">{{i+1}}</div>
<div class="col-md-5">
<input type="text" class="form-control" [(ngModel)]="modules[i].module_name" value="{{modules[i].module_name}}" disabled>
</div>
<div class="col-md-2">
<input type="radio" class="form-control" [checked]="modules[i].action.read" (change)="modules[i].action.read" name="access_{{modules[i].company_id}}" id="package-1">
<label for="package-1">Read</label>
</div>
<div class="col-md-2">
<input type="radio" [checked]="modules[i].action.write" (change)="modules[i].action.write" class="form-control" name="access_{{modules[i].company_id}}" id="package-2">
<label for="package-2">write</label>
</div>
<button (click)="test(item)">test</button>
</div>
零件
test(val){
console.log(val)
}
解决方案
主要有两个问题:
- 您需要在 for 循环中为 label 和 id 属性创建一个唯一的 id。
- 接下来,创建一个方法来切换每个单独模块的读/写属性。这确保了如果设置了 read 则 write 将为 false ,反之亦然。
.ts
toggleReadWrite(module: any, isRead: boolean) {
if (isRead) {
module.action.read = !module.action.read;
module.action.write = false;
} else {
module.action.write = !module.action.write;
module.action.read = false;
}
}
.html
<div class="row" *ngFor="let item of modules; let i = index;">
<div class="col-md-1 align-center">{{i+1}}</div>
<div class="col-md-5">
<input type="text" class="form-control" [(ngModel)]="modules[i].module_name"
value="{{modules[i].module_name}}" disabled>
</div>
<div class="col-md-2">
<input type="radio" class="form-control" [checked]="modules[i].action.read"
(change)="toggleReadWrite(modules[i], true)"
name="access_{{modules[i].company_id}}" id="package+1+{{i}}">
<label for="package+1+{{i}}">Read</label>
</div>
<div class="col-md-2">
<input type="radio" [checked]="modules[i].action.write"
(change)="toggleReadWrite(modules[i], false)" class="form-control"
name="access_{{modules[i].company_id}}" id="package+2+{{i}}">
<label for="package+2+{{i}}">write</label>
</div>
<button (click)="test(item)">test</button>
</div>
推荐阅读
- java - 反序列化包含长字符串的 json 很慢,但分两步执行很快
- node.js - 基于反应和节点 js 的应用程序中的 httponly cookie
- flutter - 私有实例变量有什么用?
- laravel - 避免laravel中的重复条目
- embedded-cassandra - 如何在 Embedded Cassandra 中指定凭据
- r - ggarrange:组合多个地块
- snowflake-cloud-data-platform - Snowflake DB:如何运行显示所有数据库/模式名称的报告?
- grep - 从文本文件中剪切一堆单词
- c++ - 为什么 GPU 任务除了主线程外不工作?
- kubernetes - 从“运营商”集群监控 k8s 应用程序