7

ja przechodząc w obiekcie jQuery do funkcji z innego pliku poprzez tablicę tak:Naśladowanie Casting z Visual Studio JavaScript IntelliSense

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

selectedStoreDocument powinien być obiektem jQuery, jednak Visual Studio IntelliSense nigdy nie będzie rozpoznaj to jako takie. Próbowałem, dodając rozszerzenie selectedStoreDocument z $.extend:

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

Jednak rozszerzenie selectedStoreDocument wymazane wszystkich moich metod jQuery (.each, .find, etc.).

Jak uzyskać selectedStoreDocument, aby pojawił się jako obiekt jQuery w IntelliSense? Zauważ, że pracuję w Visual Studio 2010.

Odpowiedz

6

stworzyłem osobny plik dla funkcji użytkowych, a drugi plik dla funkcji użytkowych + VSDoc.

utilities.js:

function castToJQuery(item) 
{ 
    return item; 
} 

utilities-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"); 
} 

Teraz mogę zadzwonić castToJQuery w żadnym z moich dalszych plików do Visual Studio myśleć właściwość dynamiczny jest jQuery obiekt.

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

Visual Studio działa teraz z IntelliSense dla moich dynamicznych urlParams [ "storeDocument"].

+0

Interesujące podejście. Czy możesz opublikować zrzut ekranu z tego, jak wygląda? – Mrchief

+0

Spróbuję dodać niektóre zrzuty ekranowe później dzisiaj –

2

Nie można uzyskać intellisense dla dynamicznie dodawanych właściwości. Trzeba zdefiniować je statycznie (w pliku vsdoc lub js):

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

więc nie ma sposobu, aby „rzucić” coś za intellisense? –

+0

Javascript nie jest językiem skompilowanym, ani VS nie ma dostawcy usług językowych, który może ocenić język i dostarczyć C# like intellisense dla ciebie. – Mrchief

+0

@Pedar, powinieneś wypróbować ReSharper 6, jego silnik javascript jest znacznie bardziej odporny niż obiekty VS dla celów intellisense (i refaktoryzacji itp.). –

1

Można podać informacje dokumentację dla zmiennej tak:

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

Więcej informacji można znaleźć http://msdn.microsoft.com/EN-US/library/hh542722(VS.110).aspx

+0

Czy to nie tylko dla VS2012? – IvanH

Powiązane problemy