2017-06-16 2 views
0

enter image description here Grille ayant un nom de champ Les utilisateurs doivent indiquer Utilisateurs (nombre d'utilisateurs) dans le nom d'en-tête ui-grid. Comment puis-je obtenir cela. Ceci est mon code de fichier JScomment ajouter un champ dynamique au champ de nom d'en-tête ui-grid

var userCount= response.usercount; 

     columnDefs: [{ 
        name: 'Users', // Along with Users i want count also 
        width: '25%',       
        cellTemplate: 'beacon-template' 
       }, 

Comment puis-je obtenir?

+0

Pouvez-vous donner un exemple plus détaillé? –

+0

J'ai ui-grille qui ont des colonnes avec un nom d'en-tête comme Utilisateurs, Prénom, Latname, Adresse. Dans la colonne Utilisateurs dans l'en-tête, j'ai besoin des utilisateurs (nombre d'utilisateurs) compte des utilisateurs dans le nom d'en-tête avec les utilisateurs. J'ai cette valeur de compte qui est dynamique. Comment puis-je afficher avec header-name Utilisateurs –

+0

J'ai ajouté une image pour vous aider à mieux comprendre. –

Répondre

0

Vous pouvez toujours modifier le texte de l'en-tête. On dirait que vous pouvez mettre une montre à la valeur de comptage et faire quelque chose de semblable à ce qui suit:

$scope.$watch('yourCountValue', function(newVal){ 

    $scope.gridOptions.columnDefs[0].displayName = 'Users(' + newVal + ')'; 

    $scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN); 
}) 

le code peut varier dans votre cas. Par exemple, vous pouvez regarder la modification de $ scope.data à la place et utiliser $ scope.data.length pour concaténer le displayName. Vous pouvez sélectionner l'en-tête et l'index sera 1 au lieu de 0, etc.

Mise à jour Réponse: avez-vous oublié d'injecter ui.grid et uiGridConstants?

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

app.controller('appCtrl', ['$scope', 'uiGridConstants', function($scope, uiGridConstants) { 

    $scope.gridOptions = { 

    columnDefs: [ 
     {field: 'field1', displayName: 'User 1'}, 
     {field: 'field2', displayName: 'User 2'}, 
    ], 

    data: [ 
     { field1: "user 1", field2: "bar"}, 
     { field1: "user 2", field2: "bar"}, 
     { field1: "user 3", field2: "bar"} 
    ], 

    onRegisterApi: function(gridApi) { 
     $scope.gridApi = gridApi; 
    } 
    }; 
    //put the watch here 
    /... 
}]); 
+0

qu'est ce que $ scope.gridApi.core m obtenir le noyau d'erreur est indéfini .. –

+0

pouvez-vous me montrer plus de votre code? On dirait soit que vous n'avez pas injecté le module ui-grid, soit que vous n'avez pas enregistré le gridApi –