2017-03-26 1 views
2

Je veux appeler une fonction myFunc sur doubleclick de la ligne ui-grille. pour que j'ai utiliséangulaire js ui-grille double-cliquez sur rangée ne fonctionne pas

<ng-dblclick="grid.appScope.myFunc()"> 

mais ce n'est pas appelé et montrant aucune erreur.

ici est la partie de l'appel html:

<div ui-grid="gridOptions" ui-grid-selection class="gridStyle" 
    ng-dblclick="grid.appScope.myFunc()"> 
</div> 

et est le script js ici:

var myData = [{name: "Moroni", age: 50}, 
         {name: "Tiancum", age: 43}, 
         {name: "Jacob", age: 27}, 
         {name: "Nephi", age: 29}, 
         {name: "Enos", age: 34}]; 

      var app = angular.module('myApp', ['ui.grid', 'ui.grid.selection']); 
      app.controller('MainCtrl', function($scope) { 
       $scope.data = myData; 
       $scope.mySelections = []; 

       $scope.gridOptions = { 
        data :'data', 
        selectedItems : $scope.mySelections, 
        enableRowSelection: true, 
        //enableSelectAll: true, 
        selectionRowHeaderWidth: 35, 
        rowHeight: 35, 
        showGridFooter:true, 
        enableRowHeaderSelection :false, 
        multiSelect:false, 
        enableSelectAll:false, 
        enableFullRowSelection:true, 
        // noUnselect: true 
       } 


$scope.myFunc = function() 
         { 
         alert('you double clicled!'); 
          }; 



        . 
        . 
        . 
        . 

     }); 
+0

Est-ce que ma réponse ci-dessous a aidé? As-tu besoin d'autre chose? –

Répondre

0

Sa faute de frappe dans le nom de directive.

Il devrait être

ng-dblclick="grid.appScope.myFunc()" 

au lieu de

ngdblclick="grid.appScope.myFunc()" 
+0

essayé encore ne fonctionne pas :( –

+0

Quelle version ui-grille que vous utilisez –

+0

J'utilise Ui-grid 3.0.3 –

0

Cela devrait le faire:

var app = angular.module('app', ['ui.grid', 'ui.grid.selection']); 
 
app.controller('MainCtrl', ['$scope', function($scope) { 
 
    var dblClickRowTemplate = 
 
    //same as normal template, but with ng-dblclick="grid.appScope.myFunc()" 
 
    "<div ng-repeat=\"(colRenderIndex, col) in colContainer.renderedColumns track by col.uid\" ng-dblclick=\"grid.appScope.myFunc()\" ui-grid-one-bind-id-grid=\"rowRenderIndex + '-' + col.uid + '-cell'\" class=\"ui-grid-cell\" ng-class=\"{'ui-grid-row-header-cell': col.isRowHeader }\" role=\"{{col.isRowHeader ? 'rowheader' : 'gridcell'}}\" ui-grid-cell></div>"; 
 
    $scope.gridOptions = { 
 
    rowTemplate: dblClickRowTemplate, 
 
    //selectedItems: $scope.mySelections, 
 
    enableRowSelection: true, 
 
    //enableSelectAll: true, 
 
    selectionRowHeaderWidth: 35, 
 
    rowHeight: 35, 
 
    showGridFooter: true, 
 
    enableRowHeaderSelection: false, 
 
    multiSelect: false, 
 
    enableSelectAll: false, 
 
    enableFullRowSelection: true, 
 
    data: [{name: "Moroni", age: 50}, 
 
      {name: "Tiancum", age: 43}, 
 
      {name: "Jacob", age: 27}, 
 
      {name: "Nephi", age: 29}, 
 
      {name: "Enos", age: 34}] 
 
    } 
 
    $scope.myFunc = function() { 
 
    alert('you double clicled!'); 
 
    }; 
 
}]);
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-grid/4.0.2/ui-grid.min.js"></script> 
 
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/angular-ui-grid/4.0.2/ui-grid.min.css" /> 
 
<div ng-app="app" ng-controller="MainCtrl"> 
 
    <div ui-grid="gridOptions" ui-grid-selection class="gridStyle"> 
 
    </div> 
 
</div>

Permettez-moi savoir si vous avez d'autres questions.