使用RequireJS和JSDoc3记录Marionette模块

时间:2014-02-21 17:59:27

标签: javascript requirejs marionette jsdoc

我终于花了一些时间正式记录我的Marionette代码,但我遇到了JSDoc3和Marionette模块的一些问题。

我将如何记录如此定义的Marionette模块:

//Module1.js
define([... , 'views'], function(..., 'views'){
    "usestrict";

    //Marionette Module definition:
    return function(...marionette module params...){
        ...
    }
}

然后将其在文档中连接到如下定义的视图:

//views.js
define([...], function(...){
    "usestrict";

    var itemView = Marionette.ItemView.extend({
        ...
    };

    //Uses itemView in a region
    return Marionette.Layout.extend({
        ...
        //do stuff with itemView
        ...
    });
}

谢谢!

1 个答案:

答案 0 :(得分:1)

好的,感谢Louis,我想出了如何让模块得到认可。然后我就可以把它弄得一团糟,把视图注册为模块的类。

Module1.js:

/** @module Module1 */
define([... , 'views'], function(..., 'views'){
    "usestrict";

    /** @lends module:Module1 */

    //Marionette Module definition:
    return function(...marionette module params...){
        ...
    }
}

和View.js:

define([...], function(...){
    "usestrict";

    /**
    * @name module:Module1.Module1/Views/itemView
    * @constructor
    */
    var itemView = Marionette.ItemView.extend(
    /** @lends module:Module1.Module1/Views/itemView.prototype */
    {
        ...
    };

    /**
    * @name module:Module1.Module1/Views/layoutView
    * @constructor
    */
    return Marionette.Layout.extend(
    /** @lends module:Module1.Module1/Views/layoutView.prototype */
    {
        ...
        //do stuff with itemView
        ...
    });
}

几点说明:

  • 在视图的@name中,.Module1 /不是必需的,但它可以更容易在文档网页中找到
  • 在这个示例中,itemView在技术上是私有的,因为它没有被返回但我希望能够在文档中找到它