【发布时间】:2016-01-10 21:03:06
【问题描述】:
我正在为细分数据构建一个输入应用程序。每个细分可以有 1 到 n 个部分。我的目标是用所需的输入、文本框、收音机、复选框等动态填充 ui。我将来自多个源的数据组合到一个数组中。由于这是动态的,我创建了将模型更改为唯一名称的服务。它现在的样子的屏幕截图
我需要帮助的问题是复选框。我无法从 html 访问它们。这是我如何访问嵌套数组的示例。这工作正常。
<tbody>
<tr ng-repeat="item in section.sectionBuilderDeveloper">
<td class="bd-td">{{item.type}}</td>
<td>{{item.name}}</td>
<td class="radio-td">
<div class="radio radio-info radio-inline">
<input type="radio" id="{{item.idStatus1}}" value="{{item.value1}}" ng-model="model[item.status]">
<label for="{{item.forStatus1}}"> Y </label>
</div>
<div class="radio radio-inline">
<input type="radio" id="{{item.idStatus2}}" value="{{item.value2}}" ng-model="model[item.status]">
<label for="{{item.forStatus2}}"> N </label>
</div>
</td>
<td class="radio-td">
<div class="radio radio-info radio-inline">
<input type="radio" id="{{item.idPriceList1}}" value="{{item.value1}}" ng-model="model[item.priceList]">
<label for="{{item.forPriceList1}}"> Y </label>
</div>
<div class="radio radio-inline">
<input type="radio" id="{{item.idPriceList2}}" value="{{item.value2}}" ng-model="model[item.priceList]">
<label for="{{item.forPriceList2}}"> N </label>
</div>
</td>
<td class="radio-td">
<div class="radio radio-info radio-inline">
<input type="radio" id="{{item.idInvSheet1}}" value="{{item.value1}}" ng-model="model[item.invSheet]">
<label for="{{item.forInvSheet1}}"> Y </label>
</div>
<div class="radio radio-inline">
<input type="radio" id="{{item.idInvSheet2}}" value="{{item.value2}}" ng-model="model[item.invSheet]">
<label for="{{forInvSheet2}}"> N </label>
</div>
</td>
</tr>
</tbody>
我需要对复选框做同样的事情。这不起作用。
<tbody>
<tr>
<td style="border-top:none" nowrap align="center" ng-repeat="checkbox in section.sectionFutureCheckboxes">
<div class="checkbox checkbox-primary">
<input id="{{checkbox.id}}" type="checkbox" ng-model="model[checkbox.model]">
<label for="{{checkbox.for}}"><b>{{checkbox.label}}</b></label>
</div>
</td>
</tr>
</tbody>
所以问题是我该怎么做?所以我在创建数组后将其展平,还是更改在服务中创建复选框数组的方式?
包含 html 的不同 plunker new plunker with html
<div class="hpanel" ng-repeat="section in formB6VM.sections">
<div class="panel-body">
<div class="row">
<div class="col-xs-12">
<ul class="list-inline">
<li><h5><b>SecID</b></h5><span>{{section.section_name}}</span></li>
<li><h5><b>Section Name</b></h5><span>{{section.section_id}}</span></li>
<li><h5><b>Active</b></h5><span>{{section.date_active}}</span></li>
</ul>
</div>
</div>
<div class="row">
<div ng-include="'modules/survey-input/fb6/views/includes/fb6_input_table.html'"></div>
</div>
<div class="row">
<div ng-include="'modules/survey-input/fb6/views/includes/fb6_builder_developer_table.html'"></div>
<div ng-include="'modules/survey-input/fb6/views/includes/fb6_future_table.html'"></div>
</div>
</div>
</div>
【问题讨论】:
-
object.checkboxes = object.sectionFutureCheckboxes[0].checkboxes; delete object.sectionFutureCheckboxes[0].checkboxes;,但我不确定你为什么需要这个。您可以通过object.sectionFutureCheckboxes.checkboxes访问他们现在所在的位置 -
除了@DelightedD0D 的回答之外,您还应该使用
delete object.sectionFutureCheckboxes.checkboxes;删除前面的复选框数组 -
@DelightedD0D 但它是一个数组,所以需要
object.sectionFutureCheckboxes[0].checkboxes -
@texas697 你想解决什么更高层次的问题?
-
为什么需要展平数据才能访问它们?
标签: javascript jquery angularjs underscore.js lodash