Tach!
Aufgrund der vielen Kritiken scheinen aber doch viele Leute Angular.js und die anderen Frameworks dazu zu missbrauchen, um Web-Visitenkarten und Ähnliches zu erstellen.
Mag sein, aber daran ist ja nicht das Werkzeug schuld, egal wie einfach und verführerisch es ist.
Würdest du bei richtigen SPAs das HTML-Markup schon anfangs in template-Blöcken ausliefern, oder es mit den Daten dann per Ajax holen und dynamisch erzeugen?
Oder. Ich entscheide das situationsabhängig, bevorzuge aber, es bereits in bestehenden Dateien zu haben. Das spart ja auch Requests und Reaktionszeit. Angular 1 nimmt dafür <script type="text/ng-template" id="foo.html">...</script>
. Wenn kein Block mit der entsprechenden ID gefunden wird, dann fordert Angular es von sich aus vom Server, wenn die ID referenziert wird. Diesen Weg musste ich an einer Stelle gehen, an der es unpraktikabel war, Templates in andere und zu dem Zeitpunkt bereits geladene Dateien einzufügen.
Zusammen mit den Daten in einem Request das Template auszuliefern kann man machen. Aber wenn die Daten dann mehrfach benötigt werden (zum Beispiel beim Paging), kommt auch das Template mehrfach mit. Oder es muss gesteuert werden, ob man es noch braucht oder nicht mehr. Angular trennt nicht nur diese Requests, auch die Aufgaben werden an verschiedenen Stellen erledigt. Ein Service kümmert sich um die Daten, das Template wird beim Router oder von den Komponenten (vereinfacht: HTML-Code der eine Teilaufgabe erfüllt) referenziert. Man kommt sonst schnell in das Mischen von Zuständigkeiten und erhält Und-Aufgaben: Daten holen und sich um das Template kümmern. Das ergibt Funktionsmonster, die man schlecht testen und warten kann, selbst wenn man die Teilaufgaben in andere Funktionen delegiert. Es ist auch nicht vorgesehen, ein Template selbst zu holen und in Angulars Template-Cache einzufügen.
dedlfix.