2011-06-22 12 views
16

JSDocでBackboneJSコードを文書化したことはありますか?何かアドバイスは感謝BackboneJSコードにjsdoc注釈を付けるには?

User = Backbone.Model.extend({ 

    defaults: { a: 1 }, 

    initialize: function() { 
     // ... 
    }, 

    doSomething: function (p) { 
     // ... 
    } 
}); 

私がいる問題注釈を付けるバックボーンは、次のような構築します。ありがとう。

+1

JSDocのはJavaDocでのポートなので。したがって、JavaScript用に設計されていません。 ['docco'](http://jashkenas.github.com/docco/) – Raynos

+0

のポートまたはその一部を使用しますか? – XMen

+0

@Raynos一般的には正しいですが、JSDocにはまだ大きな利点があります。IDEでオートコンプリートを与えることができます。 –

答えて

27

私はあなたがJSDocのツールキットの話をしている場合、それは、このように何とかうまくいくと思う:

User = Backbone.Model.extend(
/** @lends User.prototype */ 
{ 
    /** 
    * @class User class description 
    * 
    * @augments Backbone.Model 
    * @constructs 
    * 
    * Text for the initialize method 
    */ 
    initialize: function() {} 
}) 

重要なビットは@lendsタグの位置です!

それは少しトリッキーなことが、これが動作しない場合は、他の例のいくつかを試してみることができます:http://code.google.com/p/jsdoc-toolkit/wiki/CookBook

+0

おかげさまで、私は何を探していたのですか。 – sean

5

chris_bの答えは、私のサンプルと同様にリンクをたくさん助け。しかし、@class注釈を削除する必要がありました。そうしないと、クラスの2つのエントリが生成されました。さらに、この回答を追加して、静的クラスメンバー(クラスレベル定数)に注釈を付ける方法を示します。

は(我々はrequire.jsを使用しています。)

define([ 
    'jquery', 'lodash', 'backbone' 
], function($, _, Backbone) { 
    "use strict"; 

    /** 
    * Enumeration of constants that represent the different types of Hedgehogs. 
    * @memberof models/Hedgehog 
    * @enum {string} 
    * @readonly 
    */ 
    var types = { 'type1': 'Type 1', 'type2': 'Type 2' }; 

    var Hedgehog = Backbone.Model.extend(
    /** @lends models/Hedgehog.prototype */ 
    { 
     /** 
     * This is the model for Hedgehogs. 
     * 
     * @augments external:Backbone.Model 
     * @constructs 
     */ 
     initialize: function() { 
      // your code 
     }, 

     // some more methods 
    }, { 
     // static class members 
     "types": types 
    }); 
    return Hedgehog; 
}); 
関連する問題