【问题标题】:ng-repat not working in arrayng-repeat 在数组中不起作用
【发布时间】:2017-03-21 23:03:35
【问题描述】:

我尝试 ng-repeat 我的数据,但它不起作用

<div ng-if="isDocPresent(doc, $index)">
      <div ng-repeat="x in arr[$index] track by $index">
        <div class="title" ng-if="$last">{{x || 'N/A'}}</div>
        {{x.title}} {{x.document_url}} {{document_url}}
        </div>
      </div>

控制器

$scope.isDocPresent = function(doc, index) {
      if ($scope.parentCtrl.docsList && $scope.parentCtrl.docsList[appConstants.DOCUMENT_CATEGORY[doc]])
      {
        $scope.arr[index] = $scope.parentCtrl.docsList[appConstants.DOCUMENT_CATEGORY[doc]];
        return true;
      }
    };

它总是只打印这个{{x || 'N/A'}}

【问题讨论】:

  • 如果您删除 html 中的 $ 会发生什么情况,就像在 ng-repeat="x in arr[index] track by $index" 中一样?
  • 如果您在控制台中检查绑定到控制器的元素并输入 angular.element($0).scope().arr 输出是什么?
  • 页面显示{{x || 'N/A'}},这意味着您的页面有一些错误,检查控制台..

标签: angularjs arrays angularjs-ng-repeat


【解决方案1】:

您正在尝试访问 $index 变量,该变量在 ng-repeat 中定义,即不在它周围的包含块中。试试这个:

<div ng-repeat="x in arr track by $index">
  <div ng-if="isDocPresent(doc, $index)">
    <div class="title" ng-if="$last">{{x || 'N/A'}}</div>
      {{x.title}} {{x.document_url}} {{document_url}}
    </div>
  </div>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多