javascript - 在读取 json 文件的列中显示文本单选按钮,选择时应在下面的 div 中显示值
问题描述
将通过从 json 文件中获取值来创建一个表,其中数据应显示为列中的单选按钮(从每一列中选择一个值)。从每列中选择的值应显示在表格下方。谁能帮我解决这个问题?
我的 Json 是 "employees":[ {"firstName":"John", "lastName":"Doe" , "manager":"paul", "domain":"digital"}, {"firstName":"Anna" , "lastName":"Smith", "manager":"Abraham","domain":"mechanics"}, {"firstName":"Peter", "lastName":"Jones", "manager":"Jonathan" “域”:“物理学”} {“名字”:“安娜”,“姓氏”:“卡特”,“经理”:“Bravo”,“域”:“化学”} {“名字”:“沃森” , "lastName":"Daniel", "manager":"Pollock","domain":"生物学"} {"firstName":"James", "lastName":"Smith", "manager":"Tait","domain":"analogy"} {"firstName":"Angel", "lastName":" Queen", "manager":"Mcgrath","domain":"mathematics"} {"firstName":"Sana", "lastName":"Elizebeth", "manager":"Waugh", "domain":"english "}]} {"firstName":"Sana", "lastName":"Elizebeth", "manager":"Waugh", "domain":"english"} ]} {"firstName":"Sana", "lastName":"Elizebeth", "manager":"Waugh", "domain":"english"} ]
解决方案
所以这是我的解决方案。请注意,这只是一个建议:
我们在 UI 中放置了 2 个表格。
第一个表用于输入目的。tr
注意表体中的 ngFor 循环。在这里,您循环遍历对象列表,并为每个新对象tr
创建一个新对象。每个tr
包含 4 个td
,其中包含input
“radio”类型的span
-elements 和一个显示字段内容的 -elements。由“名称”属性控制,每个 COLUMN 构建一个单元。这意味着单击单选按钮只会影响同一列中每个其他单选按钮的状态,而不是行!并且每个input
元素的值都被设置,以便在单击元素时提供它。
-ngModel
属性是故事中最重要的部分。每当您单击单选按钮时,ngModel 都会将单击元素的值推送到连接的变量中。ngModel
然后,只要更新 4 个变量之一(插值),第二个表就会直接更新。这就是为什么单击一个单选按钮然后在“输出表”的相应字段中提示其值的原因。
希望这可以帮助。
在您的 HTML 文件中:
<h1>Input Table</h1>
<div class="row" id="inputTableSector">
<table id="inputTable" class="table table-striped">
<thead>
<tr>
<td>first name</td>
<td>last name</td>
<td>manager</td>
<td>domain</td>
</tr>
</thead>
<tbody>
<tr *ngFor="let employee of employees;">
<td><input type="radio" name="firstName" [value]="employee.firstName" [(ngModel)]="currentFirstName"><span>{{employee?.firstName}}</span></td>
<td><input type="radio" name="lastName" [value]="employee.lastName" [(ngModel)]="currentLastName"><span>{{employee?.lastName}}</span></td>
<td><input type="radio" name="manager" [value]="employee.manager" [(ngModel)]="currentManager"><span>{{employee?.manager}}</span></td>
<td><input type="radio" name="domain" [value]="employee.domain" [(ngModel)]="currentDomain"><span>{{employee?.domain}}</span></td>
</tr>
</tbody>
</table>
</div>
<hr>
<h1>Output Table</h1>
<div class="row" id="outputTableSector">
<table id="outputTable" class="table table-striped">
<thead>
<tr>
<td>first name</td>
<td>last name</td>
<td>manager</td>
<td>domain</td>
</tr>
</thead>
<tbody>
<tr>
<td>{{currentFirstName}}</td>
<td>{{currentLastName}}</td>
<td>{{currentManager}}</td>
<td>{{currentDomain}}</td>
</tr>
</tbody>
</table>
</div>
在您的 TypeScript 文件中:
protected employees: Array<Object>;
protected currentLastName: string;
protected currentFirstName: string;
protected currentManager: string;
protected currentDomain: string;
ngOnInit(): void {
const employeesJSON = '[' +
'{"firstName":"John","lastName":"Doe","manager":"paul","domain":"digital"},' +
'{"firstName":"Anna","lastName":"Smith","manager":"Abraham","domain":"mechanics"},' +
'{"firstName":"Peter","lastName":"Jones","manager":"Jonathan","domain":"physics"},' +
'{"firstName":"Anna","lastName":"carter","manager":"Bravo","domain":"chemistry"},' +
'{"firstName":"Watson","lastName":"Daniel","manager":"Pollock","domain":"biology"},' +
'{"firstName":"James","lastName":"Smith","manager":"Tait","domain":"analogy"},' +
'{"firstName":"Angel","lastName":"Queen","manager":"Mcgrath","domain":"mathematics"},' +
'{"firstName":"Sana","lastName":"Elizebeth","manager":"Waugh","domain":"english"}' +
']';
this.employees = JSON.parse(employeesJSON);
}
推荐阅读
- pytorch - pytorch:RuntimeError: dimension out of range (expected in range of [-1, 0], but got 1)
- c - C中的奇怪错误与指针中的指针malloc
- windows - Windows 10 1803 更新后出现 Bitvise SSH 错误
- python - Django 框架:“UserView”对象没有属性“对象”
- python - 三维数组的 Python 列表推导
- c - 如何在编译时初始化闪存中的结构?
- three.js - Threejs - 如何更改对象的旋转中心?
- jquery - 在jquery中通过某个类(数组)获取所有元素时添加一个动态数字id
- ios - 是否可以使用 ObjectMapper 创建 JSON?
- webpack - Webpack 4 --> configuration[0] 有一个未知的属性“优化”