Wir haben eine Symbolleiste (bootstrap-navbar) entwickelt, die eine Reihe von Schaltflächen / Steuerelementen enthält.
Diese Symbolleiste funktioniert wie erwartet, aber jetzt gibt es eine neue Anforderung , um einen Mechanismus zum Erweitern dieser Symbolleiste mit neuen Schaltflächen von außen (möglicherweise über die json-Konfiguration) bereitzustellen ...) oder um die Standardtasten zu entfernen.
Stellen Sie sich zum Beispiel vor, dass wir diese Toolbar als Dienst zur Verfügung gestellt haben und dass es Optionen gibt, Buttons nach Konfiguration oder etwas hinzuzufügen / zu entfernen, momentan nicht sicher, wie ...
Meine Hauptfragen sind:
- Welches Muster (Designmuster) sollte ich verwenden, um diese Symbolleiste zu erweitern (wenn möglich natürlich :)). Bitte denken Sie daran, dass jemand, der die Symbolleiste erweitern möchte, die Schaltflächen mit der Schaltfläche zur Verfügung stellen sollte Logik.
- Wie man das Projekt strukturiert
- Ich möchte die Funktionalität der Schaltfläche in verschiedene Javascript-Dateien aufteilen und lade sie zusammen in
zu habenindex.html
. Was ist der empfohlene Weg? Hinweis: Ich kann ES6 nicht verwenden (sollte IE11 auch unterstützen :() und ich benutze Knoten js nicht, um WebPack / Gulp / Grunt
Projektstruktur
%Vor% Nun möchte ich dieses große Skript in kleinere Dateien unterteilen (wie Frage 3),
Welche Technik sollte ich verwenden? Vielleicht require.js
(da ich nicht die Möglichkeit habe zu kompilieren ...
Jedes Beispiel wird sehr hilfreich sein
Dies ist zum Beispiel der HTML-Code und alle Handler-Logik in der jsFile
Ein gutes Beispiel für ein bereits existierenden, weit verbreiteten und Bibliothek gut unterstützt, die genau die Dinge tut, die Sie anfordern ist TinyMCE 4 . Ich empfehle Ihnen dringend, sich ihren Quellcode anzusehen.
Im Einzelnen ihrer Editor -Klasse, die enthält Ein gutes Beispiel für Konfigurationsoptionen einschließlich Symbolleisten und Schaltflächen. Sie können auch Addonmanager, das Script verwendet die notwendigen Teile sowie Plugins zu laden, Sprachen, etc.
Es kann Ihnen schwindlig durch sie graben alle, aber wenn Sie Hilfe benötigen, eine große Gemeinschaft dahinter ist, dass Sie in die richtige Richtung zeigen könnte.
Tags und Links javascript html design-patterns twitter-bootstrap ecmascript-5