2017-04-21 37 views
0

我使用的是NG重复循环中我的HTML页面这样如何使用ng-repeat在html页面中动态创建多个ui网格?

<li class="list-group-item" ng-repeat="obj in Students"> 
    <div class="grid" id="{{'grid'+$index}}" ui-grid="{{'griddata'+$index}}" 
     ui-grid-selection ui-grid-pagination> 
    </div> 
</li> 

这里是我的脚本来创建UI电网动态

$scope.CreateGrids = function() { 
    debugger; 
    for (var count = 0; count < $scope.StudentList.length; count++) { 

     var studentData = "griddata"+count; 

     $scope[studentData] = []; 

     // defining the grid control 
     $scope[studentData] = { 
      enableRowSelection: false, 
      //grid pagination 
      paginationPageSizes: [10, 25, 50, 75], 
      paginationPageSize: 10, 
      enableSorting: true, 
      //enabling filtering 
      enableFiltering: false, 
      multiSelect: false, 

      //column definations  
      columnDefs: [ 
       { name: 'SubjectID', displayName: 'SubjectID', visible: false }, 
       { name: 'SubjectName', displayName: 'Subject Name' }, 
       { name: 'MarksObtained', displayName: 'Marks' }, 
       ]      
     }; 

      $scope[studentData].data = $scope.StudentList[count].Student; 
    } 
}; 

但如此多的命中和试用后,我无法创建网格。 我该如何实现它? 在此先感谢。

回答

0

这里是解决方案请plunkr link

HTML代码

<li class="list-group-item" ng-repeat="obj in data"> 
     <div class="grid" id="{{'grid'+$index}}" ui-grid="{data:data['griddata'+$index].columnDefs}" 
      ui-grid-selection ui-grid-pagination> 
     </div> 
    </li> 
    </ 

JS代码

$scope.StudentList = [1, 2, 3, 4, 5]; 
    $scope.data = {}; 
    $scope.CreateGrids = function() { 
     for (var count = 0; count < $scope.StudentList.length; count++) { 
     var studentData = "griddata" + count; 
     $scope.data[studentData] = []; 
     // defining the grid control 
     $scope.data[studentData] = { 
      enableRowSelection: false, 
      //grid pagination 
      paginationPageSizes: [10, 25, 50, 75], 
      paginationPageSize: 10, 
      enableSorting: true, 
      //enabling filtering 
      enableFiltering: false, 
      multiSelect: false, 
      //column definations  
      columnDefs: [{ 
      name: 'SubjectID', 
      displayName: 'SubjectID', 
      visible: false 
      }, { 
      name: 'SubjectName', 
      displayName: 'Subject Name' 
      }, { 
      name: 'MarksObtained', 
      displayName: 'Marks' 
      }, ] 
     }; 
     $scope.data[studentData].data = $scope.StudentList[count].Student; 
     } 
    }; 

    $scope.CreateGrids(); 

希望这将帮助你

+0

感谢贾扬特·..我将tr这个。 – Chandan