2016-07-06 20 views
0

Ich bin bereit, einige Spalten (eigentlich aus dem Beispiel unter der Spalte mit Index 6) aus der Benutzeransicht ausblenden, aber immer noch im DOM zu haben, um die Suche auf die Werte zugreifen zu lassen.Angular datatables Spalte ausblenden

Ich benutze DTColumnDefBuilder:

$scope.dtColumnDefsTabs = [ 
       DTColumnDefBuilder.newColumnDef(0).notSortable(), 
       DTColumnDefBuilder.newColumnDef(1), 
       DTColumnDefBuilder.newColumnDef(2).withOption('orderDataType', 'content-categories'), 
       DTColumnDefBuilder.newColumnDef(3).withOption('orderDataType', 'markers'), 
       DTColumnDefBuilder.newColumnDef(4).notSortable(), 
       DTColumnDefBuilder.newColumnDef(5).notSortable().withClass('no-background-image'), 
       DTColumnDefBuilder.newColumnDef(6).withOption('visible', 'false') 
      ]; 

Im <thead> html definiere ich leer <td>:

<th></th> 

Und fügen Sie Daten in der <tbody>:

<td>{{ entry.device.device }}</td> 

Also habe ich versucht, alle Möglichkeiten was ich finden konnte:

DTColumnDefBuilder.newColumnDef(6).withOption('visible', 'false') 

DTColumnDefBuilder.newColumnDef(6).withOption('visible', false) 

$scope.dtColumnDefsTabs[6].visible = false; 

DTColumnDefBuilder.newColumnDef(6).notVisible() 

Nichts funktionierte, die Spalte wird immer noch angezeigt.

PS Alle Spalten aus (id = 0) (id = 5) füllen die gesamte Tischbreite (jede <td> hat eine CSS width Einstellung)

PPS Ich will nicht die Spalte mit responsive: true Option zeigen, .

+0

erstellen Sie JSFiddle oder machen Sie hier ein Beispiel auf SO. – vittore

+0

haben Sie sich die ng-show-Anweisung angesehen? – epitka

+0

@epitka 'ng-show' hat es geschafft. Kannst du bitte dich zu einer Antwort kommentieren? Ich möchte es akzeptieren –

Antwort

1

Verwenden Sie die ng-show-Anweisung, um Elemente ein- und auszublenden, aber behalten Sie sie im DOM bei.

+0

Könnten Sie bitte einen Beispielcode zeigen? – sumit

+0

Angular Dokumentation hat Beispiele. – epitka

0
$scope.dtcolumns[0].visible = false 
+0

Es ist Arbeit mit Spalte, aber wenn wir die Funktion 'withLightColumnFilter()' verwenden, ist der Filter nicht ausgeblendet. Es gibt eine Möglichkeit, das zu tun? –

0

Vielleicht nicht die beste Lösung, aber ich habe diese Arbeit durch eine Klasse Einstellung wie:

$scope.dtColumns = [ 
    DTColumnBuilder.newColumn('hiddencol').withClass('hiddencol'), 
    ... 
] 

Dann verwenden CSS, es zu verbergen.

.hiddencol { 
    display: none; 
}