簡體   English   中英

使用for循環動態禁用angularjs數據列

[英]dynamically disable angularjs datable columns using for loop

我正在使用 Angularjs 數據表,其中除第一列和最后兩列外,所有列都是動態生成的。 我需要禁用對這些動態列的排序,因此我正在為這些列運行 for 循環。 我的 for 循環從 1 開始並運行到 4。問題是雖然 for 循環從 1 運行到 3 但我只從 for 循環中獲得值 3,這是循環的最后一個值。 結果,不是禁用第 2,3,4 列,它只是禁用第 4 列。那么如何使用 for 循環為 2,3 和第 4 列設置列禁用選項?

我的代碼:

$scope.ln=4;
for(var i=1;i<$scope.ln;i++){
   $scope.vm.dtColumnDefs = [
   DTColumnDefBuilder.newColumnDef(i).notSortable()
];

}

 var app = angular.module('myApp',['datatables']); app.controller('MyCtrl', function($scope,DTOptionsBuilder,DTColumnBuilder,DTColumnDefBuilder) { $scope.list = [ {"eid":"10","dyn1":"dval1","dyn2":"dval2","dyn3":"dval3","sales":"20"}, {"eid":"30","dyn1":"dval1","dyn2":"dval2","dyn3":"dval3","sales":"20"}, {"eid":"40","dyn1":"dval1","dyn2":"dval2","dyn3":"dval3","sales":"20"} ]; $scope.vm = {}; $scope.vm.dtOptions = DTOptionsBuilder.newOptions() .withOption('order', [0, 'asc']); $scope.ln=4; for(var i=1;i<$scope.ln;i++){ $scope.vm.dtColumnDefs = [ DTColumnDefBuilder.newColumnDef(i).notSortable() ]; } });
 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script> <script src="http://phpflow.com/demo/angular_datatable_demo/angular-datatables.min.js"></script> <script src="http://phpflow.com/demo/angular_datatable_demo/jquery.dataTables.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> <link rel="stylesheet" href="http://phpflow.com/demo/angular_datatable_demo/datatables.bootstrap.css"> </head> <div class="container"> <div ng-app="myApp" ng-controller="MyCtrl"> <table class="table table-striped table-bordered" dt-options="vm.dtOptions" dt-column-defs="vm.dtColumnDefs" datatable="ng"> <thead> <tr> <th>Employee ID</th> <th>dynamic clm1</th> <th>dynamic clm2</th> <th>dynamic clm3</th> <th>sales</th> </thead> <tbody> <tr ng-repeat="data in list"> <td> {{ data.eid }} </td> <td> {{ data.dyn1 }} </td> <td> {{ data.dyn2 }} </td> <td> {{ data.dyn3 }} </td> <td> {{ data.sales }} </td> </tr> </tbody> </table> </div>

我從未使用過 $i 注釋; 你有任何源文件可以分享提到這一點嗎?

我使用以下內容:

for (var i=0; i<$scope.ln; i++) {
   $scope.vm.dtColumnDefs = [ DTColumnDefBuilder.newColumnDef($i).notSortable() ];
}

最后我自己用數組推送解決了

$scope.vm.dtColumnDefs = [  ];
for (var i=0; i<$scope.ln; i++) {

$scope.vm.dtColumnDefs.push(DTColumnDefBuilder.newColumnDef(i).notSortable()); 

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM