我在循环中使用下面的代码
"content": '<input id="txt' + $scope.response1[i].id + '" type="text" value="' + $scope.response1[i].subject + '" onclick="this.focus()"><i ng-if="('+$scope.response1[i].priority===undefined+')" class="fa fa-star" aria-hidden="true" style="color:'+getDemandColor($scope.response1[i].priority)+';"></i>',
问题是当$ scope.response1 [i] .priority等于P1时,代码<i ng-show="('+$scope.response1[i].priority===undefined+')" class="fa fa-star" aria-hidden="true" style="color:'+getDemandColor($scope.response1[i].priority)+';"></i>'
被替换为“false”。所以在我的UI中,我得到的输入框中的文本为false。
我用ng-hide替换ng-show,然后用ng-if替换相同的行为。 我期待如果有效优先权出现,那么将显示一个星形图标。如果没有优先权,则不会显示任何内容。
我无法找出为什么ng-show / ng-hide / ng-if显示为false以及标签内的整个代码。
你能帮忙吗?提前致谢。===
添加了更多代码以显示其使用方式
$scope.dataItem.add({
"id": $scope.response1[i].id,
"group": $scope.response1[i].subCapabilityName,
"content": '<input id="txt' + $scope.response1[i].id + '" type="text" value="' + $scope.response1[i].subject + '" onclick="this.focus()"><i ng-hide="'+$scope.response1[i].priority===undefined+'" class="fa fa-star" aria-hidden="true" style="color:'+getDemandColor($scope.response1[i].priority)+';"></i>',
"start": $scope.response1[i].startDate.toString().substring(0, $scope.response1[i].startDate.indexOf('T')),
"end": $scope.response1[i].endDate.substring(0, $scope.response1[i].endDate.indexOf('T')),
"type": 'range',
"className": tmp1,
"title": (!$scope.response1[i].description ? $scope.response1[i].subject : $scope.response1[i].description)
});
这个代码由JS库使用。
答案 0 :(得分:0)
我通过不使用ng-show / ng-hide解决了这个问题,如下所示。
"content": !$scope.response1[i].priority?
'<input id="txt' + $scope.response1[i].id + '" type="text" value="' + $scope.response1[i].subject + '" onclick="this.focus()">':
'<input id="txt' + $scope.response1[i].id + '" type="text" value="' + $scope.response1[i].subject + '" onclick="this.focus()"><i class="fa fa-star" aria-hidden="true" style="color:'+getDemandColor($scope.response1[i].priority)+';"></i>',