[英]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.