Можно ли использовать JavaScript в частичном просмотре

Я работаю над веб-приложением, где главная страница состоит из двух частей :постоянного блока, который всегда виден, и информационного блока -, состоящего из одного из трех частичных представлений. Каждое из частичных представлений появляется в результате AJAX-запроса и загружается только один раз (, после чего переключение окон обеспечивается jquery ). Работает хорошо, но столкнулся с одной проблемой.

HTML-код -частичных просмотров содержит js-функции, которые используются в блоке констант, а также в блоке информации -. При загрузке страницы эти функции могут «видеть» друг друга и это работает, но resharper не может найти объявления функций и предупреждает меня об этом. Я не могу решить проблему переносом их во внешний файл js из-за бритвенного синтаксиса, который можно найти в их коде.

Что я могу сделать с этим?

Спасибо.

Обновление:

Наконец-то я решил решить проблему с отделением моего js-кода от представлений. Таким образом, новый вопрос заключался в том, как включить синтаксис бритвы в файлы js или что является приемлемой альтернативой. Популярные решения, которые я нашел, используют глобальные переменные, атрибуты данных и то, что мне нравится больше — библиотека RazorJS от Джона Кациотиса.

http://djsolid.net/blog/razorjs---write-razor-inside-your-javascript-files

Надеюсь, он будет работать стабильно и порадует Resharper.

Ваше здоровье!

Обновление:

Через 3 года я вспомнил об этом вопросе и решил обновить его в соответствии со своим опытом. На самом деле сейчас я бы не рекомендовал использовать для этого дополнительные библиотеки. Особенно, если вы не единственный участник проектной команды… Гораздо лучше, если вы будете обеспечены во всех своих библиотеках,они поддерживаются создателем и сообществом и могут быть легко интегрированы в вашу IDE (, если использовать специальный синтаксис, например ). Также все ребята из вашей команды должны знать, как это работает. Так что теперь я бы предложил сделать следующее:

  1. Держите все JS в отдельных файлах. Изолируйте его, насколько это возможно. Предоставьте для него внешний API.
  2. Вызовите функции API из ваших представлений.
  3. Передайте все сгенерированные Razor URL-адреса, текстовые сообщения и константы в качестве параметра ресурса.

Например:

js-файл:

$.api.someInitFunction = function(resources){... }

Посмотреть:


63
задан Tomy 28 November 2015 в 15:57
поделиться