簡體   English   中英

當我使用self var時,jsDoc Toolkit方法,字段和屬性不顯示

[英]jsDoc Toolkit methods, fields and properties don't show when I use a self var

工具包

我正在嘗試記錄我的類,但我使用“self”var來僅公開公共方法。

jsDoc可以找到類名,但找不到方法,字段,屬性等...

這是我的一個課程:

Anny建議我該如何處理這個問題?

(function(App){
  /** @class The ViewModel for the EventView */
  App.ViewModels.EventsViewModel = function(service) {

    var self = {};

    /** Observable array containing events */
    self.events = new ko.observableArray();

    /** Call the fetchEvents method on the service */
    self.refreshEvents = function(e){
        $('.refreshBtn').changeIcon('refreshing');
        service.fetchEvents();
    }
    /** subscribe on the service->currentEvents var
      * on change update the events in this viewmodel
      * set the refesh butting is set to refresh (instead of refreashing) */
    service.currentEvents.subscribe(
        function(newValue){
            self.events(newValue);
            $('.refreshBtn').changeIcon('refresh');
        }
    );
    /** function for a timespan string ex: "10:00 - 14:00"
      * Date inputs should be of ISO-8601 Date format  */
    self.toTimeString= function(/* String */ start,/* String */ end)/* String */
    {
        var out = "";
        try
        {
            out =(start!=null && end!=null)? Util.IsoDateParse(start).format("HH:MM") + " - " + Util.IsoDateParse(end).format("HH:MM") : ""
        }
        catch(err)
        {
            out ="Error during toTimeString.\n\n";
            out+="Error description: " + err + "\n\n";
        }
        return out;
    }

    /** Call the fetchEvents method on the service */
    self.refreshEvents();

    return self;
  };
})(App)

ps:我正在使用Knockoutjs和jQueryMobile

編輯:

謝謝! 差不多......我試着這樣做:

/** @memberOf App.ViewModels.EventsViewModel#
  * @field * @description Observable array containing events */
self.events = new ko.observableArray();

jsDoc顯示它像“self.events”而不是“events”

使用memberOf標記( TagMemberOf )。 由於App.ViewModels.EventsViewModel是在匿名函數中聲明的,因此您可能需要使用name標記( TagName )將其作為全局范圍。

編輯:

嘗試:

/** @memberOf App.ViewModels.EventsViewModel#
  * @field
  * @description Observable array containing events
  * @name events
  */
self.events = new ko.observableArray();

這是一個簡單的構造函數。 使用'this'代替'self'。

JsDoc了解'這個'的成員

如果您想使用除“this”之外的其他名稱,則可以添加替代名稱

var StackOverflow = function(){
  /** Alternative */
  var me = this;

  /**
  * Default rating
  * @type {number}
  */
  this.rating = 10;

  /** Load Happy New Year: increase rating */
  this.loadNewYear = function() {
    $.ajax().done(function(){
      me.rating = 100500;
    });
  };
};

PS:不要使用'self': https//stackoverflow.com/a/3216464/1197421

使用'我'或其他東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM