2012-04-18 22 views
17

Tôi hiện đang tái cấu trúc một số mã Javascript mà chúng tôi có và trong số những thứ khác tôi đã thay đổi nó để sử dụng mẫu mô-đun tiết lộ. Mã này trông đẹp hơn nhiều và nó hoạt động tốt nhưng tôi không thể nhìn thấy các chức năng nữa trong giao diện phác thảo. Tôi thấy không gian tên cấp cao nhất là var nhưng bạn không thể mở rộng nó để xem các hàm bên trong.Làm thế nào tôi có thể xem các phác thảo trong nhật thực khi sử dụng mô hình mô-đun tiết lộ?

phép nói rằng mã sử dụng để trông như thế này:

function myFunc1() {} 
function myFunc2() {} 

Trong trường hợp này bạn nhìn thấy cả hai chức năng trong giao diện phác thảo. Nhưng nếu bạn thay đổi nó thành:

var myNamespace = function() 
{ 
    function myFunc1() {} 
    function myFunc2() {} 

    return { 
    name: "myNamespace", 
    myFunc1: myFunc1, 
    myFunc2: myFunc2 
    } 
}(); 

Sau đó, giao diện phác thảo chỉ cho bạn thấy không gian myNamespace var. Tôi đã thử tìm kiếm nhưng không thể tìm thấy chế độ xem thực sự sẽ hiển thị cho tôi thứ bậc chính xác. Có ai biết một cách để xem này hoặc là nó một trường hợp nhật thực không thể làm điều này?

+0

của Francois một công trình xử. Đó là một chút của một kludge phải dựa vào một bình luận nhưng giải pháp duy nhất của nó tôi đã nhìn thấy. Tôi nhận thấy rằng nếu bạn nhập một @memberof không chính xác thì lược đồ Eclipse đi kèm với chú thích thay vì mã, do đó bạn cần phải cẩn thận khi sử dụng nó. –

Trả lời

23

Add:

/** 
* @memberOf myNamespace 
*/ 

trước mỗi định nghĩa chức năng để khôi phục lại hệ thống phân cấp.

Bạn sẽ tìm thấy thẻ thú vị hơn để ghi lại mã của bạn ở đây:
How I Introduced JsDoc into a JavaScript project – and found my Eclipse Outline

+1

Rất cám ơn. Hai tháng sau đó và không ai khác thậm chí còn đưa ra một gợi ý để nó rõ ràng là một gợi ý khó giải quyết. –

+4

Đó là những gì tôi đang tìm kiếm từ lứa tuổi :) – Chameleon

+1

Dường như không có hiệu lực (ở tất cả) trong PHP Neon của tôi với hỗ trợ JS mặc định ... Bất kỳ điều gì khác cần biết, bật, ...? – BurninLeo

5

một cách là gọi nó như dưới đây. Xác định nó như hiện tại, nhưng không tự thực hiện nó. Đảm bảo nguyên mẫu là một đối tượng trống và sau đó thử gọi nó. Nó hoạt động theo cùng một cách, nhưng sẽ khôi phục đường viền và bạn không cần phải thêm nhận xét trước mọi chức năng.

var myNamespace = (function() 
{ 
    function myFunc1() {} 
    function myFunc2() {} 

    return { 
    name: "myNamespace", 
    myFunc1: myFunc1, 
    myFunc2: myFunc2 
    } 
}); 
myNamespace.prototype = {}; 
myNamespace(); 
+0

Đó là một câu trả lời công bằng, nó chỉ đến một chút muộn. Worth một upvote cho một noob đồng mặc dù. –

2

Không hiển thị myFunc1() vv trong đường viền dường như là lỗi được đánh dấu là cố định trong 3.2. Tuy nhiên nó không cố định trong 4.2. Nó chắc chắn là một nỗi đau lớn khi xử lý các tệp rất lớn của hàng trăm hàm và chỉ có tên var xuất hiện trong đường viền. Tôi cầu nguyện cho nó được cố định.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=236202

https://bugs.eclipse.org/bugs/show_bug.cgi?id=281374#c1

/** * @memberOf MyNameSpace */ Không làm việc cho tôi. Khi tôi thêm điều này ở trên myFunc1(), nó không hiển thị nó trong đường viền, ngay cả khi tôi đóng và mở tệp.

Điều thú vị là 4 trong số 20 hàm của tôi sẽ hiển thị trong đường viền, nhưng không có sự khác biệt giữa các hàm hoạt động và những cái không hoạt động ngoại trừ các hàm hoạt động tất cả đều có this.xxx trong chúng (nhưng nếu tôi thêm this.dummy; vào các chức năng vô hình, nó sẽ không giúp ích)

Công việc này bán: myNameSpace.prototype = {}; myNameSpace;

Nhưng sau đó bạn không thể gọi các chức năng của nó như vậy: myNameSpace.myFunc1();

+1

Vâng, trong Eclipse 5.X, hoặc bất kỳ Kepler là gì, phương pháp được đề xuất cũng không làm việc cho tôi. JSDoc tạo ra các trang HTML đẹp phác thảo đối tượng/không gian tên tự gọi, và Eclipse có thể đề xuất/tự động hoàn thành khi bạn ctrl + dấu cách, nhưng nó từ chối phác thảo đối tượng! :( –

0

Tôi đang làm việc với nhật thực/Kepler. Sử dụng lời khuyên từ phía trên, tôi đã có được chế độ xem phác thảo. Nhưng đề xuất (Ctrl-không gian) không hoạt động. Một số fn được nhìn thấy, một số không. Không có mẫu để phát hiện.

Sau khi đọc http://usejsdoc.org/#JSDoc3_Tag_Dictionary tôi đã thay thế tất cả @memberOf bởi @memberof và bây giờ mọi thứ hoạt động như mong đợi ('til vấn đề tiếp theo phát sinh ...) câu trả lời

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