2015-10-08 11 views
5

Tôi muốn thêm tài liệu ngdoc vào khai báo hàm trong một dịch vụ góc. Làm thế nào tôi có thể làm điều này cho myFunction trong ví dụ dưới đây?Làm thế nào ngdoc có thể được sử dụng để ghi lại một khai báo hàm trong một dịch vụ góc?

Tôi cho rằng tôi cần một cái gì đó như @closure, @functionOf hoặc @functionIn.

Xin lưu ý rằng (trái ngược với myMethod) myFunction không phải là phương pháp.

/** 
* @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); 
     } 
    }; 
    }) 
+0

tôi tìm thấy tài liệu cho ngdocs đây: https://github.com/idanush/ngdocs/wiki/API-Docs-Syntax – paulhhowells

+0

và ở đây: https://github.com/angular /angular.js/wiki/Writing-AngularJS-Documentation – paulhhowells

Trả lời

5

Tên khóa bạn đang tìm kiếm là chú thích @methodOf. Khi tôi đang viết tài liệu hướng dẫn sử dụng grunt-ngdocs cho một dịch vụ nó sẽ trông giống như sau:

/** 
    * @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){...} 
} 
+1

Cảm ơn bạn đã viết câu trả lời. Tuy nhiên, câu hỏi của tôi là cách viết một khai báo hàm không phải là một phương thức của dịch vụ. Trong ví dụ mã tôi đã cho tôi muốn tìm một cách để sử dụng ngdoc với myFunction (mà không phải là một phương pháp). Ví dụ mã cũng minh họa việc sử dụng methodOf đang được sử dụng với myMethod (đó là một phương thức). Trong ví dụ của bạn doSomething là một phương thức để nó có ý nghĩa khi sử dụng methodOf. – paulhhowells

0

tôi chỉ có kinh nghiệm với JSDoc, không ngdoc, nhưng bạn đã thử @memberOf hơn @methodOf?

Link to JSDoc page for memberOf

+0

Cho đến nay tôi đã không tìm thấy một cách với ngdoc để sử dụng '@ memberOf',' @ member', hoặc '@ private', để ghi lại' myFunction' như đang ở trong phần đóng của hàm tạo 'myService'. Có một chút chức năng công bằng trong JSDoc dường như không có sẵn trong ngdoc. Cảm ơn vì đã muốn giúp đỡ. – paulhhowells

0
/** 
* @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 
    } 

}]); 
+0

myFunction không phải là một phương pháp – paulhhowells

Các vấn đề liên quan