7

tôi đi qua trong một đối tượng jQuery vào một hàm từ tập tin khác thông qua một mảng như sau:Bắt chước Đúc với JavaScript IntelliSense Visual Studio của

$(document).bind("loadStoreDisplayCallGoals", function(source, urlParams) 
{ 
    var selectedStoreDocument = urlParams["storeDocument"]; 
} 

selectedStoreDocument phải là một đối tượng jQuery, tuy nhiên Visual Studio Intellisense sẽ không bao giờ nhận ra nó như vậy. Tôi đã cố gắng thêm mở rộng selectedStoreDocument với $.extend:

// cast selectedStoreDocument to a jQuery type 
$.extend(selectedStoreDocument, $); 

Tuy nhiên, mở rộng selectedStoreDocument tiêu diệt tất cả các phương pháp của tôi jQuery (.each, .find, vv).

Làm cách nào để có được selectedStoreDocument xuất hiện dưới dạng đối tượng jQuery trong IntelliSense? Lưu ý rằng tôi đang làm việc trong Visual Studio 2010.

Trả lời

6

Tôi đã tạo tệp riêng cho các chức năng tiện ích và tệp thứ hai cho các chức năng tiện ích + VSDoc.

utilities.js:

function castToJQuery(item) 
{ 
    return item; 
} 

tiện ích-vsdoc.js:

function castToJQuery(item) 
{ 
    /// <summary> 
    ///  1: $(item) - "Casts" the specified item to a jQuery object for the sake of Intellisense 
    /// </summary> 
    /// <returns type="jQuery" /> 
    return $("dummy"); 
} 

Bây giờ tôi có thể gọi castToJQuery trong bất kỳ file hạ lưu của tôi để làm cho Visual Studio nghĩ một tài sản năng động là một jQuery vật.

var selectedStoreDocument = castToJQuery(urlParams["storeDocument"]); 
selectedStoreDocument.find("products"); 

Visual Studio giờ đây hoạt động với Intellisense cho url động của tôiParams ["storeDocument"].

+0

Cách tiếp cận thú vị. Bạn có thể đăng ảnh chụp màn hình về giao diện của nó không? – Mrchief

+0

Tôi sẽ cố gắng thêm một số ảnh chụp màn hình sau ngày hôm nay –

2

Bạn không thể nhận được intelliSense cho các thuộc tính được thêm động. Bạn cần xác định chúng tĩnh (trong tệp vsdoc hoặc js):

$.selectedStoreDocument = function() { 
    ///<summary>A Selected Store Document</summary> 
}; 
+0

Vì vậy, không có cách nào để "đúc" một cái gì đó cho IntelliSense? –

+0

Javascript không được biên dịch ngôn ngữ, cũng không VS có một nhà cung cấp ngôn ngữ srvice có thể đánh giá ngôn ngữ và cung cấp C# như intellisense cho bạn. – Mrchief

+0

@Pedar, bạn nên thử ReSharper 6, công cụ javascript của nó mạnh hơn đáng kể so với cơ sở VS chứng khoán cho mục đích intellisense (và tái cấu trúc, vv) –

1

Bạn có thể xác định thông tin tài liệu cho một biến như thế này:

$(document).bind("loadStoreDisplayCallGoals", function(source, urlParams) 
{ 
    /// <var type="jQuery"/> 
    var selectedStoreDocument = urlParams["storeDocument"]; 
    selectedStoreDocument._ 
} 

Để biết thêm thông tin, xem http://msdn.microsoft.com/EN-US/library/hh542722(VS.110).aspx

+0

Không chỉ dành cho VS2012? – IvanH

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