2016-07-31 9 views
0

Ich verwende eine Direktive, um eine Dropdown-Liste mit 9-10 Optionen in jeder Zeile einer Tabelle anzuzeigen. Diese Tabelle kann bis zu 200 Zeilen enthalten. Meine Sorge ist, dass diese Anweisung 200 Mal für jede Zeile aufgerufen wird. Gibt es eine Möglichkeit, die Drop-Down nur einmal erstellen und einfach in jeder Zeile einfügen und binden Sie es mit dem Bereich, so dass, wenn es ein Ereignis im Drop-down-Menü gibt, auch das funktioniertAngularJS - Verwendung der Direktive innerhalb der Tabelle - ng-repeat Auswirkungen auf die Leistung

Antwort

1

Wenn ich es wäre, würde ich nicht Machen Sie sich keine Sorgen, es sei denn, Sie bemerken bemerkenswerte Probleme mit der Leistung. Die meisten Browser sollten in der Lage sein, eine 200-Zeilen-Tabelle mit Direktiven in jeder Zeile ohne Probleme zu handhaben.

Wenn Sie jedoch Bedenken haben oder Probleme auftreten, haben Sie mehrere Möglichkeiten.

1) Anstelle einem Drop-Down-Menü in jeder Zeile, setzen Sie einfach eine Schaltfläche „Bearbeiten“ und dass ein modalen zu öffnen verwenden, wo der Benutzer, was will wählt sie

2) wie ui-grid eine editierbare Tabelle Plugin verwenden (Doppelklicken Sie auf die Daten der Beispieltabelle, um sie zu bearbeiten). Es wurde mit Tausenden von Zeilen getestet und es funktioniert gut. In diesem Beispiel sehen Sie ein Dropdown-Menü, in dem der Benutzer männlich oder weiblich auswählen kann. Dieser kann so konfiguriert werden, dass er die gewünschten Optionen hat.

Verwandte Themen