Недавно я начал использовать angular-ui-grid (http://ui-grid.info/
) и попытался создать решение для перемещения строк между двумя различными сетками (именно это решение, но это делается на сетке kendo - http://jsfiddle.net/OnaBai/2qXKy/
).
Поскольку я довольно новичок в java-скрипте, я не смог создать его в угловом-ui-сетке. Имейте некоторые проблемы, чтобы назначить выбранные строки grid1 в grid2 и удалить выбранные строки из grid1.
У кого-нибудь есть это решение?
Заранее спасибо.
EDIT: я добавил быстрый НЕ рабочий jsfiddle (http://jsfiddle.net/LimoJoe/n9h7xmw3/4/
)
Здесь JSBin о том, как вы могли бы управлять им с помощью двух контроллеров и службы. Он использует ngGrid, но в этом случае все равно должен быть достаточно похож на ui.grid.
Не то чтобы я думаю, что ваши проблемы в том, как вы настраиваете gridOptions
, в вашем примере я не видел, где вы установили gridOptions
'selectedItems':
См. Правки:
this.gridOptions = {
data: 't2.items',
/** NG Grid way
selectedItems: []
*/
/** UI Grid way */
enableRowSelection: true,
enableSelectAll: true,
multiSelect: true,
onRegisterApi: function(gridApi) {
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope, function(rows) {
angular.copy(gridApi.selection.getSelectedRows(), ctl.selectedItems);
});
}
};
Редактировать:
Основываясь на ваших комментариях, вот вилка статьи, на которую вы ссылались, plunkr, которая является обновленной версией. Надеюсь, вы сможете использовать это как отправную точку.
В основном для использования ui-grid, начиная с этой статьи, вам необходимо обновить версию угловой и ui-сетки.
Редактировать:
Хорошо, ваш JsBin был очень близок, я его отредактировал, вот новая версия, теперь это обновленная версия моего оригинального JsBin, я думаю, что мы здесь!
Окончательное решение здесь JSBin с добавленной функцией callback gridApi.selection.on.rowSelectionChangedBatch
которую пользователь может использовать кнопку "Выбрать все" и выбранный список, будет обновлен.
onRegisterApi: function (gridApi) { $scope.gridApi = gridApi; gridApi.selection.on.rowSelectionChanged($scope,function(rows){ $scope.mySelections = gridApi.selection.getSelectedRows(); });