2014-09-06 56 views
0

我想填充我的HTML表,浏览导航菜单。我的表格使用ng-repeat创建。这是我的.js文件

carApp.controller("OtherCarTablesCtrl", function($scope, getAllCars){ 
    $scope.tabArray = [2,3,4] 
    $scope.carList = [] 

    function sortCars(index){ 
     getAllCars.get().success(function(data){ 
      var CarList = []; 
      .... 
      return CarList; 
     }); 
    } 

    $scope.switchCarList = function(index){ 
     switch (index-1) { 
      case 1: 
       $scope.carList = sortCars(1); 
       console.log("case 1 was passed"); 
       return $scope.carList; 
      case 2: 
       $scope.carList = sortCars(2); 
       console.log("case 2 was passed"); 
       return $scope.carList; 
      case 3: 
       $scope.carList = sortCars(3); 
       console.log("case 3 was passed"); 
       return $scope.carList; 
     } 
    }; 
}); 

这里是我的HTML文件的一部分:

<div ng-controller="OtherCarTablesCtrl"> 
    <div ng-repeat="tab in tabArray"> 
     <div class="panel" ng-show="panel.isSelected({{tab}})"> 
      .... 
      <tbody ng-repeat="car in switchCarList(tab)"> 
      .... 
     </div> 
    </div> 
</div> 

当我运行我的应用程序在浏览器中,打开我看到"case 1 was passed""case 2 was passed""case 3 was passed"是控制台一直打印出来不停。

这是为什么发生?我该如何解决这个问题?在开关的情况下

+0

你可以分享你的完整代码完整的测试.. – masum7 2014-09-06 10:55:39

+0

其他部分不依赖于问题 – 2014-09-06 11:04:20

+0

这个代码是你所需要的顶部执行并测试了我的问题 – 2014-09-06 11:05:01

回答

-1

添加破

+0

它没有帮助 – 2014-09-06 10:18:46

+0

但代码工作正常。你使用循环,所以它会在所有的条件下出现什么错误? – 2014-09-06 10:31:32

+0

我在代码中使用了'break'语句,但我没有在这里提到它。 – 2014-09-06 10:38:47

-1

<div ng-repeat="tab in tabArray">这里tabArray是[2,3,4]这么像(2,3,4)<tbody ng-repeat="car in switchCarList(tab)">每个选项卡将执行一次。

tab=2$scope.switchCarList(tab)称为所以内部交换机索引变为等于标签即2. 所以switch (index-1)等于开关(1)和壳体1将被执行。

tab=3$scope.switchCarList(tab)称为所以内部交换机索引变为等于标签即3. 所以switch (index-1)等于开关(2)和壳体2将被执行。

tab=4$scope.switchCarList(tab)称为所以内部交换机索引变为等于标签即4. 所以switch (index-1)等于开关(3)和壳体1将被执行。

这就是所有。如果你不想执行所有这些情况。然后取出<div ng-repeat="tab in tabArray">