我想把ngdoc文档添加到angular服务中的函数声明中。我如何在下面的例子中为我的函数做到这一点?
我想我需要一些像@closure, @functionOf或者@functionIn这样的东西。
请注意(与myMethod相反)myFunction不是一个方法。
/**
* @ngdoc service
* @name myApp.service:myService
* @description
* My application.
*/
angular
.module('myApp')
.factory('myService', function() {
'use strict';
var x = 0;
/**
* @ngdoc function
* @name ?
* @description
* How can this be identified as being within the closure of
* myService, and not be described as a constructor?
*/
function myFunction (z) {
x++;
x += z;
}
return {
/**
* @ngdoc method
* @name myMethod
* @methodOf myApp.service:myService
* @description
* A method of myService.
*/
myMethod : function (x) {
myFunction(x);
}
};
})
您要查找的键名是@methodOf
注释。当我使用grunt-ngdocs为一个服务编写文档时,它最终看起来像这样:
/**
* @ngdoc overview
* @name module
* @description A small module containing stuff
*/
angular
.module(module, [])
.factory('name', factory);
/**
* @ngdoc object
* @name module.name
* @description Its a pretty bad factory
*/
function factory() {
return {
doSomething: doSomething
};
/**
* @ngdoc function
* @name module.name#doSomething
* @methodOf module.name
* @description Does the thing
* @param {string=} [foo='bar'] This is a parameter that does nothing, it is
optional and defaults to 'bar'
* @returns {undefined} It doesn't return
*/
function doSomething(foo){...}
}
我只使用过JSDoc,没有使用过ngdoc,但是您尝试过@memberOf
而不是@methodOf
吗?
链接到JSDoc的memberOf页面
/**
* @ngdoc controller
* @name MyApp.myController:myController
* @description
* This is myController controller.
**/
angular.module('MyApp').controller('myController', ['$scope', function($scope) {
/**
* @ngdoc function
* @name myFunction
* @methodOf MyApp.controller:myController
* @description
* This function does something
*/
function myFunction(){
// do something
}
}]);