问题 如何记录Ember App?


我正在使用YUIdoc。还要别的吗 ?那么有人能告诉我如何在Ember中正确记录模型,控制器,混合和视图吗?

例如,我正在尝试记录这个:

App.newModel = DS.Model.extend({
    someProperty: DS.attr('string')
});

App.myController = Ember.Controller.extend({
    someProperty: ...
});

App.myMixin = Ember.Mixin.create({
    someProperty: ...
});

编辑 我现在使用的是YUIdoc而不是jsdoc3


5351
2018-05-06 09:28


起源

我一直在努力解决如何记录计算属性和观察者的问题。如果我找到任何可靠的例子,我会报告回来。 - Lawrence Ryerson Davis IV


答案:


您将很难使用JSDoc for Ember应用程序,因为JSDoc解析代码而不仅仅是注释。 Ember使用他们自己的类类语法,因此JSDoc无法识别很多代码。我个人用 YUIDoc这是Ember团队使用的。 (YUIDoc还允许您导入其他文档以解析外部引用,例如 DS.Model。)还有其他选择。 这一页 做一些比较,并给你一个差异图表,显示哪些工具解析注释而不是源代码。

另外,我意识到我没有回答你的具体问题。但这应该有助于回答有什么替代方案的问题,这可能完全消除你的JSDoc问题。


9
2018-05-06 12:40



谢谢你的建议。我也做了更多研究,现在我正在使用YUIdoc。你能为这个文件记者找到答案吗? - Bartheleway


我已经发现 烬式导向 对我有用。但几乎没有变化:

  1. 之后 @module 语句我从项目名称开始写一个完整的路径。它让我有机会链接到它。例如:

    /**
     * @module dashboard/models/node
     * @augments module:ember-data/system/model
     * @public
     */
    export default DS.Model.extend({
    
      /**
       * @type {module:dashboard/models/node}
       */
      parent: DS.belongsTo("node"),
    
      /**
       * @type {Array<module:dashboard/models/node>}
       */
      childs: DS.hasMany("node"),
    
      /**
       * @method
       * @return {module:dashboard/models/node}
       */
      getFirstChild() {
        // ...
      }
    
    });
    
  2. 之后 @augments 语句我写了一个模块的完整路径,从中扩展了当前模块。如果模块从第三部分模块扩展,我写了该模块的完整路径(从模块中获取它) import 声明)。我不确定它是否正确,因为在生成的文档中没有指向这些模块的链接。我没有找到一种方法来链接它们。老实说,我不确定这是否可能,因为不同的项目可能使用不同的doc注释引擎,并且没有办法按名称绑定模块(类)。


2
2017-12-07 08:31