Angular UI Grid:如何在加载新数据后直接选择行?

时间:2016-03-06 15:50:02

标签: angularjs angular-ui-grid

第2行的.selectRow()不起作用:

$scope.gridOptions.data = MyResource.query();
$scope.gridApi.selection.selectRow( $scope.gridOptions.data[0] ); // Select first row

我猜它不起作用,因为网格还没有完成刷新,或者甚至还没有开始刷新,因为它仍在等待来自MyResource.query()的数据

以下情况也不起作用,我不明白为什么:

$scope.gridApi.grid.modifyRows(MyResource.query());
$scope.gridApi.selection.selectRow( $scope.gridOptions.data[0] ); // Select first row

究竟出了什么问题?提前谢谢。

2 个答案:

答案 0 :(得分:0)

尝试使用$ scope.gridApi.grid.modifyRows($ scope.gridOptions.data);

答案 1 :(得分:0)

我不确定你是否已经解决了这个问题,但我认为问题在于你试图在那之前选择行。您可以分两步完成此操作。首先加载数据,然后在完成后广播事件,然后在收听广播时获取行。 所以第1步就是这样的事情:

const XLSX = require('xlsx');
const fs = require('fs');

const stream = fs.createReadStream('sample.xlsx');


// This function returns Error: Unsupported file 48

documentedExample = function(){
  var arr = new Array();

  stream.on('data', function( arraybuffer ){
    var data = new Uint8Array(arraybuffer);
    for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
  });
  stream.on('end', function(){
    var bstr = arr.join("");
    var workbook = XLSX.read(bstr, {type:"binary"});

  });
}


// This function returns Error: End of data reached (data length = 75589, asked index = 77632). Corrupted zip ?

alternateExample = function(){
  var bufferArray = [];
  stream.on('data', function( thisChunk ){
    bufferArray.push( thisChunk );
  });
  stream.on('end', function(){
    var excelDataBuffer = bufferArray.join("");
    excelDataBuffer = excelDataBuffer.toString();
    var workbook = XLSX.read(excelDataBuffer, {type:"binary"});
  });
}

然后听广播:

$scope.gridOptions.data = MyResource.query();
$rootScope.$broadcast('data_loaded', $scope.gridOptions.data);

我希望它有所帮助。