2013-12-13 11 views

Odpowiedz

8

Ponieważ używasz dependency injection, Visual Studio nie ma sposobu, aby dowiedzieć się, jakie są typy argumentów.

Jest to typowy problem z Javascript intellisense, a ponieważ JavaScript nie pozwala na adnotacje typu jawnego, wydaje się, że nie ma jasnego sposobu obejścia go.

Jednak można to osiągnąć łatwo za pomocą Typescript (który ma rozszerzenie VS2013) i angular types gdzie Twój kod będzie wyglądać następująco:

angular.module('example', ['ngRoute']) 
    .config([ '$locationProvider', 
    function ($locationProvider : ng.ILocationProvider) { 

      $locationProvider. // Intellisense would work here. 
    } 
    ]); 
+0

Czynnik DI ma sens. WebStorm udaje się to rozgryźć, miał nadzieję, że VS też może. Nie jestem pewien, czy chcę dodać do mojego kodu rzeczy ZdecydowanieTypowe, ale dam mu szansę i zobaczę, jak to działa. Dzięki – kenwarner

+0

@qntmfred Zauważ, że są to jedynie definicje typów i nie będą _właśnie dodawać niczego do twojego kodu. Adnotacje typu pozostaną również w ostatecznym skompilowanym kodzie. –

7

zbudowałem bibliotekę właśnie do tego:

https://github.com/jmbledsoe/angularjs-visualstudio-intellisense

+0

To jest niesamowite, wielkie dzięki. Próbowałem dowiedzieć się, jak to osiągnąłeś, ale wiele rzeczy nie rozumiem. Czy masz poradę, którą możesz doradzić, aby takie przedłużenie było potrzebne? –

+0

Chciałbym, ale nie mam na to czasu, obawiam się. Przeglądaj źródło, dodawaj rejestrowanie, obserwuj, jak działa. Mamy nadzieję, że będziesz w stanie odebrać miejsce, w którym skończyłem i kontynuować wprowadzanie ulepszeń. –

+0

Rozumiem. Jeszcze raz dziękuję –

Powiązane problemy