2014-09-06 31 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">