2015-04-06 101 views
4

我使用的角度ui.grid我的问题是其选择角度UI格行选择

enableRowSelection: true, 
enableRowHeaderSelection: false, 
multiSelect: false 

后,我改变

enableRowSelection: true, 
enableRowHeaderSelection: true, 
multiSelect: false 

现在只能选择复选框工作,但没有工作,单击行请帮助...

回答

3

看到这个问题:https://github.com/angular-ui/ng-grid/issues/2254

当前行头选择和行选择不一致。我相信前者是用于在使用单元导航时选择行的解决方法。

此更改被列为增强功能,因此它在路线图上,而不是针对3.0版本。

更新:

OK,这里是你如何能做到这一点(虽然依靠的东西未发布测试版模块的“紧急”上是不是一个好主意,IMO)。

从选择功能的uiGridCell指令中取出代码,将其解压出来并放入您自己的模块中。具体的代码如下:https://github.com/angular-ui/ng-grid/blob/v3.0.0-rc.20/src/features/selection/js/selection.js#L757

下面是一些未经验证的示例代码。您需要确保您不绑定行标题单元格或复选框选择不起作用。

angular.module('ui.grid.custom.rowSelection', ['ui.grid']) 

.directive('uiGridCell', function ($timeout, uiGridSelectionService) { 
    if ($scope.col.isRowHeader) { 
    return; 
    } 

    registerRowSelectionEvents(); 

    function selectCells(evt) { ... } 
    function touchStart(evt) { ... } 
    function touchEnd(evt) { ... } 
    function registerRowSelectionEvents() { ... } 
}); 

最后,这里是一个演示整个事情的笨蛋。您可以复制该代码,并调整它,只要你喜欢:http://plnkr.co/edit/44SYdj19pDDaJWiSaPBt?p=preview

+0

感谢响应,有没有办法做到这一点,因为这对我来说迫切.... – vamsikrishnamannem 2015-04-07 05:28:14

+0

@vamsikrishnamannem好吧我已经添加了一个例子,说明你现在如何做到这一点。 – c0bra 2015-04-07 15:03:27

+0

@ c0bra所以ui-grid已经没有像'touchStart(evt)'这样的东西了? ng-grid用于拥有'beforeSelection'。你是否继续使用ui-grid? – sports 2015-09-09 15:44:46

8

这个问题理应早就被固定(https://github.com/angular-ui/ui-grid/commit/679b615bd19ff71ff1e835d7f6066e7a919f279a),但它仍然在角的UI网版坚持了我3.1.1

有有一种解决方法吧(https://github.com/angular-ui/ui-grid/issues/5474)一个新的问题来超越这一个CSS规则:

.ui-grid-cell.ui-grid-disable-selection.ui-grid-row-header-cell { 
    pointer-events: auto; 
} 
+0

完美的解决方案! :) – onlinehood 2016-07-05 00:31:43