これは、グリッドが DOM に読み込まれるときに API が登録されるためです。同じスコープを持つ 2 つのグリッドがあるため、2 番目が読み込まれると、その API は $scope.gridApi で定義されたものになります。したがって、その API で行うことはすべて、2 番目のグリッド インスタンスと対話します。
ここでの解決策は、おそらく $scope.gridOptions1、$scope.gridOptions2 などのグリッドを分離することです。両方で発生する必要がある場合は、関数内で各 API を個別に呼び出すことができます。
これは私がすることです:
http://plnkr.co/edit/nLLR63L4H4NqLoZsGpkS?p=preview
送信関数については、結果を含む単一の配列が必要であると仮定して、1 つの結果を提供するように関数を更新しました。
$scope.submitData = function() {
var selectedRows1 = $scope.gridApi1.selection.getSelectedRows(),
selectedRows2 = $scope.gridApi2.selection.getSelectedRows(),
selectedRows = selectedRows1.concat(selectedRows2);
console.warn(selectedRows);
alert(selectedRows.length)
if (selectedRows.length === 0)
alert('Please select an item from grid');
else
alert(JSON.stringify(selectedRows));
}