ich auch dieses Problem gestoßen sind. Ich schreibe jetzt Dokumentation für AngularJS Codes durch jsdoc Kommentare wie folgt aus:
1.Make eine leere Js-Datei mit folgendem Kommentar:
/**
* @namespace angular_module
*/
Dies wird eine separate HTML in der erzeugten Dokumentation für Auflistung erstellen alle Module.
2.In Javascript-Dateien, die alle neuen Winkelmodul definiert, verwenden Sie diese Art von Kommentar
/**
* @class angular_module.MyModule
* @memberOf angular_module
*/
Dies wird ein Element in der obigen Auflistung aller angular_modules, sowie die Schaffung einer separaten HTML-Seite hinzu MyModule, weil es eine Klasse ist.
3.Für jeder AngularJS Service, verwenden Sie den folgenden Kommentar:
/**
* @function myService
* @memberOf angular_module.MyModule
* @description This is an angularjs service.
*/
Dies wird ein Element in der MyModule Seite für den Dienst hinzuzufügen. Da es als Funktion hinzugefügt wird, können Sie Dokumentation für Eingabeparameter mit '@param' schreiben und Werte mit '@return' zurückgeben.
4.Wenn ich ziemlich lange Codes in einem Controller oder Direktive von MyModule habe und eine separate HTML-Datei haben möchte, um es zu dokumentieren, werde ich den Controller oder die Direktive als eine Klasse mit dem vollständigen Pfad annotieren. z.B.
/**
* @class angular_module.MyModule.MyController
*/
Auf diese Weise wird MyController als ein Element in der Dokumentationsseite von MyModule aufgelistet.
Dann können wir Codes innerhalb des Controllers als Elementfunktionen von MyController annotieren.
/**
* @name $scope.aScopeFunction
* @function
* @memberOf angular_module.MyModule.MyController
* @description
*/
Auf diese Weise dieser Dokumentation der Funktion wird in der HTML-Datei von MyController HTML-Seite angezeigt werden. Die durch Punkt getrennte vollständige Pfadzeichenfolge baut die Verbindung auf.
Es gibt drei Arten von Syntaxen für Name:
- Person # sagen // die Instanzmethode namens "sagen."
- Person.say // die statische Methode namens "say."
- Person ~ sagen // die innere Methode mit dem Namen‚sagen.‘
jedoch ein unvollkommener Punkt-Regler als Klasse der Kommentierung ist, dass ein‚neue‘wird vor dem Controller-Namen in dem generierten finden hTML-Dokumentation, weil es als Klassenkonstruktors beschrieben.
Außerdem Sie Namespaces, um definieren eine hierarchische Struktur hinzuzufügen. zum Beispiel können Sie einen Namensraum definieren, um alle Controller umfassen
/**
* @namespace MyApp.Controllers
*/
, und alle Controller mit MyApp.Controllers
voranstellen. Sie können auch Namensräume definieren wie MyApp.Product
oder MyApp.Customer
usw.
Obwohl nicht perfekt, Ich mag jsdoc mit AngularJS Codes zu dokumentieren, weil
- Es ist einfach;
- Die Modul-Controller-Funktionshierarchie wird beibehalten;
- Und es hält jsdoc's Verdienst, dass es eine durchsuchbare Dokumentationsseite ist.
Ein Tisch Stil jsdoc Sheet:
Insbesondere habe ich den Standard-jsdoc Sheet auf eine Tabelle Stil wie die Java-API-Dokumentation angepasst. Es sieht klarer aus.
In Windows, ersetze ich diese Datei: C:\Users\user1\AppData\Roaming\npm\node_modules\jsdoc\templates\default\static\styles
mit dieser Datei https://github.com/gm2008/jsdoc/blob/master/templates/default/static/styles/jsdoc-default.css
Das ist es.
Schöne Antwort! Was würden Sie tun, wenn Sie eine Fabrik hätten, die eine Klasse zurückgibt (Konstruktor)? –
Da es sich um eine Klasse handelt, verwenden Sie einfach "@class angular_module.MyModule.classname". Vergessen Sie die Fabrik, konzentrieren Sie sich darauf, Ihre Klasse zu dokumentieren. Ich hoffe es hilft. – gm2008
das ist eine großartige Erklärung! irgendwelche Ideen, wie man eine Datei mit der gesamten Dokumentation statt einer Web-App erstellt? – spyder