2011-06-22 9 views
16

Czy ktoś kiedykolwiek udokumentował kod BackboneJS z JSDoc?Jak napisać jsdoc kod BackboneJS?

Mam problemy adnotacji Backbone konstruuje takich jak:

User = Backbone.Model.extend({ 

    defaults: { a: 1 }, 

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

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

Wszelkie porady mile widziane. Dzięki.

+1

Ponieważ JSDoc jest port JavaDoc. Więc nie jest przeznaczony dla JavaScript. Użyj ['docco'] (http://jashkenas.github.com/docco/) – Raynos

+0

portu lub części? – XMen

+0

@Raynos Ogólnie masz rację, ale JSDoc nadal ma jedną ogromną zaletę: może dać Ci autouzupełnianie w IDE. –

Odpowiedz

27

myślę, że to działa jakoś tak, jeśli mówimy o JSDoc Toolkit:

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

Ważne bit jest pozycja znacznika @lends!

To może być trochę trudne, ale jeśli to nie zadziała wypróbować kilka innych przykładów: odpowiedź http://code.google.com/p/jsdoc-toolkit/wiki/CookBook

+0

Dzięki, że to, czego właśnie szukałem. – sean

5

chris_b za bardzo mi pomogło, próbka, jak również link. Musiałem jednak usunąć adnotację @class lub wygenerować dwa wpisy dla klasy. Co więcej, dodam tę odpowiedź, aby pokazać sposób adnotacji statycznych członków klasy (stałe na poziomie klasy).

(Używamy 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; 
});