KnockoutJs и шаблоны - Нет подсветки / дополнения кода в visual studio? - PullRequest
4 голосов
/ 04 октября 2011

Я играл с учебными пособиями на сайте нокаута и с удовольствием работал с ним.

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

Пример шаблона:

<script type="text/html" id="taskTemplate">
    <li>
        <input type="checkbox" data-bind="checked: isDone" />
        <input data-bind="value: title, enable: !isDone()" />
        <a href="#" data-bind="click: remove">Delete</a>
    </li>
</script>

Это то, что вынадо просто проглотить или это можно избежать / исправить?Кажется, шаблоны являются одним из наиболее часто используемых способов создания страницы, поэтому я предпочел бы получить поддержку от IDE.

Ответы [ 4 ]

9 голосов
/ 04 октября 2011

Чтобы обойти это, я создаю два html-помощника для начала моего тега сценария и конца моего тега сценария. Что-то вроде:

<% Html.BeginTemplate(new { id = "features-template" }); %>
    <li>
        <input type="checkbox" data-bind="checked: isDone" />
        <input data-bind="value: title, enable: !isDone()" />
        <a href="#" data-bind="click: remove">Delete</a>
    </li>
<% Html.EndTemplate(); %>
5 голосов
/ 04 октября 2011

Кит предложил очень хорошее и интеллектуальное решение. Однако я хотел бы сообщить, что у KO 1.3 есть собственный шаблонизатор. Доступно через новые привязки:

  • если
  • IFNOT
  • с
  • Еогеасп!

Вы можете прочитать больше в объявлении Стива Сандерсона: http://blog.stevensanderson.com/2011/08/31/knockout-1-3-0-beta-available/ (1. Привязки потока управления)

Итак, ваш пример будет выглядеть так:

<ul data-bind="foreach: tasks">
<li>
    <input type="checkbox" data-bind="checked: isDone" />
    <input data-bind="value: title, enable: !isDone()" />
    <a href="#" data-bind="click: remove">Delete</a>
</li>
</ul>
1 голос
/ 04 октября 2011

Это тег <script type="text/html"...>, который останавливает Visual Studio, выделите этот раздел вашей разметки как HTML. Поэтому этот вопрос / ответ кажется наиболее близким к ответу.

Visual Studio - Подсветка синтаксиса разметки внутри скрипта [тип: txt / html]

0 голосов
/ 16 мая 2013

Я использовал принятый ответ здесь, и, поскольку он помог мне, если кто-то хочет получить настоящий код, вы идете:

public string StartTemplate(string id)
{
    return ("<script type=\"text/html\" id=\"" + id + "\">\r\n");
}

public string EndTemplate()
{
    return ("</script>\r\n");
}

HTML:

<%= StartTemplate("WidgetTemplate")%>
 ...actual template HTML goes here...
<%= EndTemplate() %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...