工具包
我正在尝试记录我的类,但我使用“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”
答案 0 :(得分: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();
答案 1 :(得分:0)
这是一个简单的构造函数。 使用'this'代替'self'。
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:不要使用'self':https://stackoverflow.com/a/3216464/1197421
使用'我'或其他。