我需要动态生成范围变量的名称,然后在我的html页面上的ng-repeat
中使用它。老实说,我不知道如何开始。我需要的是:
在我的控制器中:
$scope.[myDynamicName] = Section1;
$scope.[myDynamicName] = Section2;
然后在我的HTML中:
<div ng-repeat="item in myDynamicName(Section1)"> here myDynamicName would be replaced with Section1
<div ng-repeat="item in myDynamicName(Section2)"> here myDynamicName would be replaced with Section2
问题是我有几个需要出现在1页的数组。当用户选择要查看的部分时,将填充数组。有超过100个部分(并且一直在创建新部分),用户可以选择任何部分组合在页面上查看,因此我不能只给它们静态名称。我尝试使用我在SO $scope[field]=Section1
上找到的示例然后在我的html ng-repeat = q in field
中,但当然,这不起作用。
目前,我在服务调用中使用部分ID获取每个部分的响应,如下所示:
deferred.resolve(contractorService.getQuestionSectionAnswers(id)
.success(function (data) {
$scope.questions = data;
我无法在同一页面上为每个集合使用$scope.questions
。
非常感谢任何帮助。
答案 0 :(得分:0)
尝试这样的事情(显然没有经过测试)。
首先,创建一个数组来保存结果组。
$scope.sectionAnswers = [];
接下来,当您获取特定组的结果时,可以将结果列表推送到数组中:
deferred.resolve(contractorService.getQuestionSectionAnswers(id)
.success(function (data) {
$scope.sectionAnswers.push(data);
}))
然后,您可以遍历数组,然后遍历子数组:
<div ng-repeat="section in sectionAnswers">
<div ng-repeat="answer in section">
{{answer.field}}
</div>
</div>
当用户取消选中该复选框时,您只需从阵列中删除关联的answers
。