AngularJS ng-repeat显示微调器

时间:2014-11-24 11:51:29

标签: angularjs

我有以下代码。目标是,为每个单击的<span>显示微调器 - 但它没有显示。为什么?

<tr ng-repeat="cat in myItems">
   <td>
      <div class='spinner' ng-show="{{cat.loading}}">
         <img src='/Content/loading.GIF' alt=''/>
      </div>
      <div ng-click="changeItem(cat)" class="contentCell">              
         <span>click me</span>
      </div>
   </td>
</tr>

控制器:

$scope.changeItem = function (cat) {
        cat.loading = true;
        catService.doSth(cat.id).then(function (data) {
            cat.loading = false;
        });
    }

我看到div有ng-hide个类,无论ng-show="false"还是ng-show="true"它仍然存在,我认为这可能是原因

<div class="spinner ng-hide" ng-show="false">
   <img alt="" src="/Content/loading.GIF">
</div>

2 个答案:

答案 0 :(得分:4)

尝试删除ng-show中的{{}},它会计算表达式,而不是值。

<tr ng-repeat="cat in myItems">
   <td>
      <div class='spinner' ng-show="cat.loading">
         <img src='/Content/loading.GIF' alt=''/>
      </div>
      <div ng-click="changeItem(cat)" class="contentCell">              
         <span>click me</span>
      </div>
   </td>
</tr>

答案 1 :(得分:0)

试试这个:

   $scope.cat = false;
    $scope.changeItem = function (cat) {
            $scope.cat.loading = true;
            catService.doSth(cat.id).then(function (data) {
                 $scope.cat.loading = false;
            });
        }

您正在尝试对$ scope.cat做出反应,但它不存在