Шаблоны jQuery с бритвы использование бритвы в текст/HTML скрипты


Хорошо, это немного случайно, но..

Использование MVC 3 (с двигателем Razor view) с нокаутом.js, который использует шаблон jQuery, я столкнулся с небольшой проблемой, которую, я уверен, можно решить.

Чтобы использовать jQuery-Tmpl, вам нужно предоставить шаблон в

<script type="text/html">
...template elements go here...
</script>

Теперь проблема в том, что движок Razor view, похоже, не генерирует HTML внутри этих конкретных тегов скриптов. он обрабатывает стандартный html, (script type= "text/javascript") отлично, но кажется, что просто не делайте ничего с вышеупомянутым тегом сценария.

Кто-нибудь знает, как обойти эту проблему, например, как использовать MVC 3 Razor с jQuery-Tmpl?

2 5

2 ответа:

В этом блоге есть довольно хорошее решение: http://www.wiredprairie.us/blog/index.php/archives/1204

При этом создается помощник" template", который выдает теги start/end скрипта.

В противном случае, у меня есть некоторые идеи для размещения шаблонов во внешних файлах, что было бы еще одним способом избежать этой проблемы. Это включает в себя хранение шаблонов внутри .html-файлы и впрыскивание их на страницу в теги скриптов. Есть, конечно, много способов, что это может быть выполнено, хотя на стороне клиента или сервера, всего несколько идей.

Более общий подход, если вы хотите сохранить вещи в документе, - это использование @Html.Raw для вывода html без изменения состояния синтаксиса во время редактирования.

Например:

@Html.Raw("<script type='text/x-dot-template' id='awesome_template'>")
   <!-- insert some awesomeness here -->           
@Html.Raw("</script>")

Мне немного больше нравится вспомогательный метод, предложенный выше, но он не всегда был тем, что я мог реализовать, поэтому это альтернатива со своими преимуществами (а именно ясность над простотой использования и краткостью)