条件ng-repeat ui-router

时间:2017-06-21 14:49:59

标签: javascript angularjs url angular-ui-router angularjs-ng-repeat

我使用ui路由器($ routeprovider和$ locationprovider)作为角度js。我想根据当前的url / route更改在ng-repeat中循环的数组。我已经在堆栈上阅读了类似的帖子,但无法找到问题的确切解决方案。

这些是我的路线

   .when('/limited', {
          template: '<di-home></di-home>',
          activeTab: 'home',
          caseInsensitiveMatch: true,
      })

   .when('/all', {
          template: '<di-home></di-home>',
          activeTab: 'home',
          caseInsensitiveMatch: true,
      })  

当网址发生变化时,我想在Ctrl.data.all&#34;中更改&#34;中的ng-repeat到了Ctrl.data.limited&#34;中的东西用某种if语句。

<md-card class="md-whiteframe-4dp" ng-repeat="things in Ctrl.data.all" flex-xs="100" flex-sm="100" flex-md="45" flex-gt-md="30"></md-card>

实现这一目标的最佳方法是什么?你能指出我正确的方向/类似的职位吗?谢谢!

1 个答案:

答案 0 :(得分:0)

请勿在您的视图中执行此操作,这是您的控制器的工作。保持视图简单:

if($location.path() === '/limited') {
    $scope.dataToDisplay = $scope.data.limited;
} else if($location.path() === '/all') {
    $scope.dataToDisplay = $scope.data.all;
}

然后在控制器中,根据您的网址,设置$location

{{1}}

PS:不要忘记在控制器中注入{{1}}。