2011-06-22 18 views
16

¿Alguien ha documentado el código BackboneJS con JSDoc?¿Cómo jsdoc anotar el código BackboneJS?

Tengo problemas Backbone anotar construye como:

User = Backbone.Model.extend({ 

    defaults: { a: 1 }, 

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

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

Cualquier consejo apreciado. Gracias.

+1

Debido jsdoc es un puerto de JavaDoc. Por lo tanto, no está diseñado para JavaScript. Utilice el puerto ['docco'] (http://jashkenas.github.com/docco/) – Raynos

+0

o parte de? – XMen

+0

@Raynos En general, tiene razón, pero JSDoc todavía tiene un gran beneficio: puede darle autocompletar en un IDE. –

Respuesta

27

creo que funciona de alguna manera como esto, si usted está hablando de la Caja de Herramientas jsdoc:

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

la parte importante es la posición de la etiqueta @lends!

Puede ser un poco complicado, pero si esto no funciona probar algunos de los otros ejemplos: Respuesta http://code.google.com/p/jsdoc-toolkit/wiki/CookBook

+0

Gracias, eso es justo lo que estaba buscando. – sean

5

de chris_b me ha ayudado mucho, la muestra, así como el enlace. Sin embargo, tuve que soltar la anotación @class, o generaría dos entradas para la clase. Además, estoy agregando esta respuesta para mostrar cómo anotar miembros de clase estáticos (constantes de nivel de clase).

(usamos 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; 
});