2013-11-20 66 views
1

我有這張桌子;如何更新angularjs中的html表的數據?

 <table class="table table-striped table-bordered table-responsive" ng-show="viewBusinessUnits"> 
     <thead> 
     <tr> 
      <th>Business Unit</th> 
      <th><input type="checkbox" ng-model="businessUnitSales">Sales</input></th> 
      <th><input type="checkbox" ng-model="businessUnitPercentageLY">Percentage Last Year</input></th> 
      <th><input type="checkbox" ng-model="businessUnitWTD">WTD Percentage Last Year</input></th> 
     </tr> 
     </thead> 
     <tbody> 
     <tr ng-repeat="row in tableData"> 
      <td><a href="#" ng-click="toggleTable(row.name)">{{row.name}}</a></td><!----> 
      <td>{{row.Actual}}</td> 
      <td>{{row.Budget}}</td> 
      <td>{{row.BudgetVar}}</td> 
     </tr> 
     </tbody> 
    <table> 

被畫成與正確的數據,一切都在頁面加載時,但我已經宣佈在控制器中的海軍報圖點擊收聽,我要用來更改表中顯示的數據,取決於點擊圖表上的哪個條/點;

$("#graph_canvas").bind("plotclick", function (event, pos, item) { 

     if(item){ 
     switch(item.series.data[item.dataIndex][0]){ 
      case 'airtime': 
      $scope.tableData = $scope.airtimeData; 
      break; 

      case 'clothing': 
      $scope.tableData = $scope.clothing; 
      break; 

      case 'foods': 
      $scope.tableData = $scope.foods; 
      break; 
     } 

     alert("1st item: " + $scope.tableData[0].name); 
     } 
    }); 
現在

該警報在plotclick聽者的結束,告訴我,$scope.tableData肯定是更新,但在HTML表中顯示的數據保持不變, 通常angularjs,加入一排的陣列用在一個select元素中,select元素立即用一個額外的選項來更新,當我替換這個整個表時,它是行不通的,是一種解釋還是我可以在更改數據後重新呈現表的方法?

+0

,如果您使用jQuery 1.7或超越,然後使用'。對()',而不是'.bind()',總是與庫或框架更新被再次使用:) – dreamweiver

回答

3

角不知道所發生的點擊裏面的模型更新。使用$apply

$("#graph_canvas").bind("plotclick", function (event, pos, item) { 
    $scope.$apply(function(){ 
     if(item){ 
      switch(item.series.data[item.dataIndex][0]){ 
       case 'airtime': 
        $scope.tableData = $scope.airtimeData; 
        break; 
       case 'clothing': 
        $scope.tableData = $scope.clothing; 
        break; 
       case 'foods': 
        $scope.tableData = $scope.foods; 
        break; 
      } 
      alert("1st item: " + $scope.tableData[0].name); 
     } 
    }); 
}); 
+0

感謝!將盡快嘗試並回復您。 。 。 .nice! – pythonian29033

相關問題