2015-11-25 9 views
5

Ho una griglia utente in cui voglio selezionare la riga facendo clic su qualsiasi dove su qualsiasi riga. Voglio anche copiare un contenuto di cella su una scheda di clip. Ho fatto il seguente codice, ma mentre enableFullRowSelection è true, Non riesco a selezionare il contenuto della cella tramite il draging del mouse.La griglia utente angolare non è in grado di copiare il testo della cella

Vedere plunker. Dopo ulteriori indagini ho scoperto che la classe di selezione di -ui-grid-disable è stata aggiunta alla mia griglia.

Quindi qualcuno può suggerire come risolvere questo?

EDIT: Se cambio enableFullRowSelection a falso, posso selezionare il contenuto.

var app = angular.module('plunker', ['ui.grid', 'ui.grid.selection']); 
 

 
app.controller('MainCtrl', function($scope) { 
 
    $scope.name = 'World'; 
 
    $scope.data = [ 
 
    {a:'A', b:'B'}, 
 
    {a:'A1', b:'B1'}, 
 
    {a:'A2', b:'B2'}, 
 
    {a:'A3', b:'B3'}, 
 
    {a:'A4', b:'B4'} 
 
    ]; 
 
    $scope.gridOptions = { 
 
\t data : 'data', 
 
\t enableRowSelection: true, 
 
\t enableFullRowSelection: true, 
 
\t enableHighlighting : true, 
 
\t multiSelect: false 
 
    }; 
 
});
<!DOCTYPE html> 
 
<html ng-app="plunker"> 
 

 
    <head> 
 
    <meta charset="utf-8" /> 
 
    <title>AngularJS Plunker</title> 
 
    <script>document.write('<base href="' + document.location + '" />');</script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <link rel="stylesheet" href="https://cdn.rawgit.com/angular-ui/bower-ui-grid/master/ui-grid.min.css" type="text/css" /> 
 
    <script data-require="[email protected]" src="https://code.angularjs.org/1.4.7/angular.js" data-semver="1.4.7"></script> 
 
    <script src="https://cdn.rawgit.com/angular-ui/bower-ui-grid/master/ui-grid.min.js"></script> 
 
    <script src="app.js"></script> 
 
    </head> 
 

 
    <body ng-controller="MainCtrl"> 
 
    <p>Hello {{name}}!</p> 
 
    
 
    <div style="height:200px" 
 
    data-ui-grid="gridOptions" 
 
    data-ui-grid-selection></div> 
 
    
 
    </body> 
 

 
</html>
prega di aiuto.

risposta

8

Penso che il modo più semplice sia quello di scavalcare la classe css. Se si controlla il codice ui-grid poi ui-grid-disable-selezione classe viene aggiunta se entrambi i flag sono impostati

ui-grid-disable-selection

È possibile aggiungere una classe all'elemento griglia, come illustrato di seguito

<div style="height:200px" 
    class="ui-grid-selectable" 
    data-ui-grid="gridOptions" 
    data-ui-grid-selection></div> 

    .ui-grid-selectable .ui-grid-disable-selection { 
     -webkit-touch-callout: default; 
     -webkit-user-select: text; 
     -khtml-user-select: text; 
     -moz-user-select: text; 
     -ms-user-select: text; 
     user-select: text; 
     cursor:auto; 
    } 

Controllare aggiornato plunker.

+0

Grazie, funziona. –