我想做以下事情:
<div>
<div ng-repeat="row in test.active">
<div>{{ row.id }}</div>
<div>
{{ if (row.testTypeId == 1) { test.exams.dataMap[row.examId].name; } }}
{{ if (row.testTypeId == 2) { test.topics.topicNameMap[row.topicId] } }}
</div>
</div>
</div>
然而,{{}}内部的{{}}给出了错误。还有其他方法可以让这项工作吗?
答案 0 :(得分:7)
@ jack.the.ripper是对的。将逻辑移动到$ scope中的函数并调用它。
$scope.name = function (row) {
if (row.testTypeId == 1) {
return test.exams.dataMap[row.examId].name;
} else {
return '';
}
}
在HTML中:
{{ name(row) }}
答案 1 :(得分:4)
三元运营商当然有效,plnkr。
{{ (row.testTypeId == 1) ? test.exams.dataMap[row.examId].name : '' }}
{{ (row.testTypeId == 2) ? test.topics.topicNameMap[row.topicId] : '' }}
答案 2 :(得分:2)
您可以使用ng-show执行此操作:
<div>
<div ng-repeat="row in test.active">
<div>{{ row.id }}</div>
<div ng-show="row.testTypeId == 1">
{{test.exams.dataMap[row.examId].name }}
</div>
<div ng-show="row.testTypeId == 2">
{{ test.topics.topicNameMap[row.topicId] }}
</div>
</div>
</div>
答案 3 :(得分:0)
为什么需要在数据绑定本身?你不能只使用ng-if
指令吗?
<div ng-if="row.testTypeId == 1">stuff</div>
<div ng-if="row.testTypeId == 2">otherstuff</div>