如何使用ngdoc记录以角度返回类的工厂?

时间:2015-04-04 16:40:13

标签: javascript angularjs documentation jsdoc ngdoc

给定一个带有工厂的角度应用程序,它返回一个类,如下:

angular.module('fooApp').factory('User', function(){
    function User(name){
        this.name = name;
    }

    User.prototype.greet = function(){
        return "Howdy, " + this.name;
    }

    return User;
});

使用ngdocjsdoc角度使用的特殊风格),如何在不将其定义为方法的情况下记录初始值设定项?

现在,这是我尝试过的:

/**
 * @ngdoc service
 * @name fooApp.User
 * @description User factory.
 */

angular.module('fooApp').factory('User', function(){

    /**
     * @ngdoc method
     * @methodOf fooApp.User
     * @name Initializer
     * @description Initializes a new User object with a name
     */
    function User(name){
        this.name = name;
    }

    User.prototype.greet = function(){
        return "Howdy, " + this.name;
    }

    return User;
});

但这会导致User初始值设定项(接受参数User的{​​{1}}函数)被视为名为name的方法,这会让人感到困惑人们试图使用这段代码。

我已尝试添加Initializer标记,但这不会影响html @constructor最终生成

谢谢。


更新:删除了对dgeni的引用。我的印象是我使用的插件(grunt-ngdocs)在幕后使用dgeni,但事实并非如此。

3 个答案:

答案 0 :(得分:11)

我就是这样做的,特别是没有使用Angular的经验:

/**
 * @ngdoc service
 * @name fooApp.User
 * @description User factory.
 */

angular.module('fooApp').factory('User', function(){

    /**
     * @ngdoc method
     * @constructs fooApp.User
     * @description Initializes a new User object with a name
     */
    function User(name){
        this.name = name;
    }

    User.prototype.greet = function(){
        return "Howdy, " + this.name;
    }

    return User;
});

答案 1 :(得分:2)

这是自以为是的答案 我在使用Angular文档方面遇到了麻烦,我甚至写了一篇关于它的博客Sigh, AngularJS Documentation

我的结论是建立一个新的。 Angular-jsdoc是结果。

以下是github的摘录。

角-JSDoc

AngularJS的JSDoc 3模板。
一个用于AngularJS的JSDoc插件和模板,没有别的!

功能

  • 右侧TOC,目录,用于通过指令,服务,控制器等进行导航
  • 阅读并处理@ngdoc标记

它看起来如何

答案 2 :(得分:1)

我创建了一个fork / pull请求,以便在grunt-ngdocs中添加@constructor支持gulp-ngdocs:Reference Source。所有这一切都是将基本用法部分更改为包含新关键字。

然后使用与@ SGD的答案类似但略有不同的方式。 确保服务上的@ngdoc指令指定了函数。

示例:

&trustCertificateKeyStoreUrl=file://path_to_truststore_file&trustCertificateKeyStorePassword=password