2014-02-21 71 views
2

我終於花了一些時間來正式記錄我的Marionette代碼,但是我遇到了JSDoc3和Marionette模塊的一些問題。用RequireJS和JSDoc3記錄一個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 
     ... 
    }); 
} 

謝謝!

+0

你說:「我遇到了JSDoc3和Marionette模塊的一些問題。你遇到了什麼問題?還有[答案](https://stackoverflow.com/questions/19230971/how-do-i-jsdoc-a-nested-objects-methods),涵蓋了做它的一般方法。 – Louis

+0

感謝您的鏈接!我不知道我是如何在自己的搜索中錯過的。 –

+0

要回答你的問題,我得到一個空白的index.html模板。感謝您的鏈接,我明白了!現在發佈答案。 –

回答

1

好的,由於路易斯我想出瞭如何讓模塊被識別。然後,我可以充分利用它,以便將視圖註冊爲模塊的類。

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 /並不是真的有必要,但它更容易在文檔網頁中找到
  • i在這個例子中,temView在技術上是私有的,因爲它沒有得到返回,但我希望能夠在文檔中找到它