- Registriert
- Mai 2010
- Beiträge
- 639
// EDIT: Sorry, jetzt hab ich vergessen den Titel anzupassen
"AngularJS - View mit unterschiedlicher Darstellung"
Moin,
ich bin momentan dabei mich für ein laufendes Projekt in AngularJS (1.6.x) reinzufuchsen. Dabei stellt sich mir die Frage wie ich folgendes Problem am elegantesten lösen könnte und was der von AngularJS eigentlich vorgesehene Weg dafür ist.
Ich habe eine View mit einer Tabelle und pro Zeile können drei verschiedene Buttons (A, B & C) angezeigt werden. Diese View möchte ich auf unterschiedlichen Seiten anzeigen. Soweit kein Problem. Nun möchte ich, dass auf Seite 1 die Tabelle ohne Buttons, auf Seite 2 die Tabelle mit Buttons A und B und auf Seite 3 nur mit dem Button C angezeigt wird. Da ich den Code nicht drölf Mal wiederholen möchte, möchte ich das möglichst weit kapseln.
Die erste Idee war, dass ich mir eine Directive erstelle welche ich über Attribute konfigurieren kann. Dort würde der Controller alle Funktionalitäten kennen, in der View würde aber nur die gewünschte Funktionalität angezeigt werden.
Andere Idee wäre, dass die View alles beinhaltet und nicht konfigurierbar ist. Dafür aber je nach Anwendungsfall einen Controller schreibe, welcher vom
Gibt es noch einen anderen (besseren) Weg wie man das lösen könnte?
Besten Dank!

Moin,
ich bin momentan dabei mich für ein laufendes Projekt in AngularJS (1.6.x) reinzufuchsen. Dabei stellt sich mir die Frage wie ich folgendes Problem am elegantesten lösen könnte und was der von AngularJS eigentlich vorgesehene Weg dafür ist.
Ich habe eine View mit einer Tabelle und pro Zeile können drei verschiedene Buttons (A, B & C) angezeigt werden. Diese View möchte ich auf unterschiedlichen Seiten anzeigen. Soweit kein Problem. Nun möchte ich, dass auf Seite 1 die Tabelle ohne Buttons, auf Seite 2 die Tabelle mit Buttons A und B und auf Seite 3 nur mit dem Button C angezeigt wird. Da ich den Code nicht drölf Mal wiederholen möchte, möchte ich das möglichst weit kapseln.
Die erste Idee war, dass ich mir eine Directive erstelle welche ich über Attribute konfigurieren kann. Dort würde der Controller alle Funktionalitäten kennen, in der View würde aber nur die gewünschte Funktionalität angezeigt werden.
HTML:
<div id="page1">
<my-table></my-table>
</div>
<div id="page2">
<my-table includeA="true" includeB="true"></my-table>
</div>
<div id="page3">
<my-table includeC="true"></my-table>
</div>
tableController
erbt und die gewünschte Funktionalität für die Buttons erweitert. Im tableController
wäre dann standardmäßig keine Funktionalität für A, B und C vorgesehen. Die spezifischen Controller können die Funktionalität dann überschreiben und somit aktivieren.
HTML:
<div id="page1" ng-controller="tableController">
<my-table></my-table>
</div>
<div id="page2" ng-controller="tablecontrollerWithA_B">
<my-table></my-table>
</div>
<div id="page3" ng-controller="tablecontrollerWithC">
<my-table></my-table>
</div>
Besten Dank!