5

J'essaie knockout.js dans un projet de test MVC3. J'ai la structure suivante:Pourquoi intellisense ne fonctionne pas sur mon objet ko?

Project Root 
    Scripts 
    jquery-1.4.4.js 
    knockout-1.2.0.debug.js 
    etc... 
    Views 
    Home 
     Index.cshtml 
    Shared 
     _Layout.cshtml 
    HTMLPage1.htm 

Dans mon dossier _Layout.cshtml, je les blocs de script suivants:

<script src="/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script> 
<script src="/Scripts/jquery.tmpl.js" type="text/javascript"></script> 
<script src="/Scripts/knockout-1.2.0.debug.js" type="text/javascript"></script> 

Dans mon dossier Index.cshtml, je suis en train d'utiliser l'objet ko dans mon bloc de script. Cela fonctionne bien, mais dans le concepteur VS, je n'ai pas d'intellisense sur l'objet ko lui-même.

Si j'ouvre un fichier HTML brut au niveau du projet racine et y mets un bloc de script, je reçois intellisense sur l'objet ko.

Qu'est-ce que j'ai tort? Pourquoi intellisense ne peut-il pas voir l'objet ko dans mon fichier .cshtml?

Je note dans la sortie de débogage dans VS, je reçois le texte suivant:

Javascript IntelliSense Message: JSIntellisense: interne/fenêtre (18: 4): Fonction attendue
Javascript IntelliSense Message: JSIntellisense: interne/window (19: 8): 'ko' est indéfini
Javascript Intellisense Message: JSIntellisense: Interne/fenêtre (18: 4): Fonction attendue
Javascript Intellisense Message: JSIntellisense: Interne/fenêtre (19: 8): ' ko 'est indéfini
Javascript Intellisense Message: JSIntel lisense: Interne/fenêtre (18: 4): Fonction attendue
Javascript Intellisense Message: JSIntellisense: Interne/fenêtre (19: 8): 'ko' est indéfini
Javascript Intellisense Message: JSIntellisense: Interne/fenêtre (18: 4): Fonction attendue
Javascript IntelliSense message: JSIntellisense: interne/fenêtre (19: 8): 'ko' est définie
etc.

Répondre

11

Ah compris. J'ai besoin que mes blocs de script référencent mes fichiers .js dans le fichier .cshtml.

Comme dans:

@if (false) 
{ 
    <script src="/Scripts/knockout-1.2.0.debug.js" type="text/javascript"></script> 
    <script src="/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script> 
    <script src="/Scripts/jquery-ui.js" type="text/javascript"></script> 
    <script src="/Scripts/jquery.tmpl.js" type="text/javascript"></script> 
    <script src="/Scripts/knockout-1.2.0.debug.js" type="text/javascript"></script> 
} 

Le @if (false) signifie qu'ils ne pas s'inclus lors de l'exécution (et donc utiliser les scripts comprend de mon maître .cshtml fichier).

Questions connexes