Почему IntelliSense не работает на моем объекте Ко? - PullRequest
5 голосов
/ 02 мая 2011

Я пробую knockout.js в тестовом проекте MVC3. У меня есть следующая структура:

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

В моем файле _Layout.cshtml у меня есть следующие блоки скриптов:

<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>

В моем файле Index.cshtml я пытаюсь использовать объект ko в своем блоке скрипта. Он работает нормально, но в конструкторе VS я не получаю никакой информации о самом объекте ko.

Если я открою обычный HTML-файл на уровне корневого проекта и вставлю туда блок скрипта, я получу intellisense для объекта ko.

Что я не прав? Почему intellisense не видит объект ko в моем файле .cshtml?

Я отмечаю в выводе отладки в VS, я получаю следующее:

Сообщение Javascript Intellisense: JSIntellisense: Internal / window (18: 4): ожидаемая функция
Javascript Intellisense Сообщение: JSIntellisense: Internal / window (19: 8): 'ko' не определено
Javascript Intellisense Сообщение: JSIntellisense: Внутреннее / окно (18: 4): Ожидаемая функция
Javascript Intellisense Сообщение: JSIntellisense: Internal / window (19: 8): 'ko' не определено
Javascript Intellisense Сообщение: JSIntellisense: Внутреннее / окно (18: 4): Ожидаемая функция
Сообщение IntelliSense Javascript: JSIntellisense: Internal / window (19: 8): «ko» не определено
Javascript Intellisense Сообщение: JSIntellisense: Внутреннее / окно (18: 4): Ожидаемая функция
Сообщение IntelliSense Javascript: JSIntellisense: Internal / window (19: 8): «ko» не определено
и т. д.

1 Ответ

11 голосов
/ 02 мая 2011

Ах, разобрался. Мне нужно, чтобы мои блоки скриптов ссылались на мои файлы .js в реальном файле .cshtml.

Как в:

@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>
}

@if (false) означает, что они не включаются во время выполнения (и поэтому используют сценарии, включенные из моего основного файла .cshtml).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...