angularjs ng-show无法正常工作

时间:2018-01-23 09:32:51

标签: javascript angularjs

我在循环中使用下面的代码

"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库使用。

1 个答案:

答案 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>',