3

ツールキット

クラスを文書化しようとしていますが、「自己」変数を使用してパブリック メソッドのみを公開しています。

jsDoc はクラス名を見つけることができますが、メソッド、フィールド、プロパティなどを見つけることができません...

これは私のクラスの1つです:

これにどのようにアプローチすべきか提案はありますか?

(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 では、「events」ではなく「self.events」のように表示されます

4

2 に答える 2

2

memberOfタグ ( TagMemberOf )を使用します。またApp.ViewModels.EventsViewModel、無名関数で宣言されているため、nameタグ ( TagName ) を使用してグローバルとしてスコープする必要がある場合があります。

編集:

試す:

/** @memberOf App.ViewModels.EventsViewModel#
  * @field
  * @description Observable array containing events
  * @name events
  */
self.events = new ko.observableArray();
于 2011-11-03T16:35:07.833 に答える
0

シンプルなコンストラクタです。「self」の代わりに「this」を使用します。

JsDoc は「this」のメンバーを理解します

「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: 「自己」を使用しないでください: https://stackoverflow.com/a/3216464/1197421

「私」または他の何かを使用します。

于 2013-12-10T06:21:23.283 に答える