2013-10-29 10 views
7

Sto utilizzando ng-grid per visualizzare una raccolta di file che vengono caricati (ogni file ha una propria riga).Aggiungere una classe alla riga di griglia ng

Se uno o uno dei file non riesce a caricare, vorrei modificare quella riga e mettere una classe su di esso per mostrare che non è riuscito a caricare.

Come aggiungerei una classe a un'intera riga?

+2

può impostare i propri modelli ... quindi nel set di modelli 'ng-class' basato su qualsiasi variabile che è necessario monitorare. Vedi i documenti per il collegamento al wiki di Github relativo ai modelli – charlietfl

+0

Ah, grazie amico. Stavo guardando attraverso i documenti per circa 30 minuti, non sono sicuro di come mi sia mancata l'opzione di configurazione 'rowTemplate'. –

risposta

13

Bisogna utilizzare un modello di fila. In questo modello è possibile utilizzare ng-class e assegnare dinamicamente una classe CSS tramite il databinding.

Un semplice esempio:

HTML

<body ng-controller="MyCtrl"> 
    <div class="grid" ng-grid="gridOptions"></div> 
</body> 

JavaScript

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

app.controller('MyCtrl', function($scope) { 
    $scope.fileOneUploaded = true; 
    $scope.fileTwoUploaded = false; 

    $scope.gridData = [{fileName: 'File 1', size: 1000, isUploaded: $scope.fileOneUploaded }, 
       {fileName: 'File 2', size: 2000, isUploaded: $scope.fileTwoUploaded }]; 
    $scope.gridOptions = { 
    data: 'gridData', 
    rowTemplate: '<div style="height: 100%" ng-class="{red: !row.getProperty(\'isUploaded\')}">' + 
        '<div ng-repeat="col in renderedColumns" ng-class="col.colIndex()" class="ngCell ">' + 
         '<div ng-cell></div>' + 
        '</div>' + 
       '</div>' 

    } 
}); 

CSS

.grid { 
    width: 300px; 
    height: 100px; 
    border: solid 1px rgb(90,90,90); 
} 

.red { 
    background-color: red; 
    color: white; 
} 
+1

Grazie per aver scritto la risposta. Oggi ho imparato che non riesco a leggere. Stavo leggendo i documenti cercando di trovare il rowTemplate e continuavo a mancarlo :) Grazie ancora. –

1

Sono stupido. C'è un'opzione di configurazione standard per questo, vale a dire, rowTemplate.

Grazie a @charlieftl per avermi fatto ri-leggere la documentazione :)

Problemi correlati