2012-02-23 3 views
2

Я работаю над мобильным проектом jquery, и я хочу использовать нокаут, так как я хорошо понимаю mvvm и думал, что это ускорит мой проект. что у меня есть viewmodel с массивом элементов, и когда я создаю шаблон для этих элементов и помещаю кнопку внутри шаблона, он не получает шаблонов с jQuery mobile css.jquery mobile css не применяется к шаблону нокаута

ЗАКАНЧИВАТЬ Js скрипку здесь: JsFiddle Example

Я хотел бы кнопки игроков, чтобы получить свои стили из JQuery, как кнопка в нижней части страницы (которая не находится в шаблоне).

Это просто пример, я бы хотел, чтобы это применялось к другим элементам формы, есть ли хорошее решение для этой проблемы?

+0

Разметка, обновленная нокаутом на основе изменений в режиме просмотра, в значительной степени всегда приведет к разметке, не созданной jqm. Пользовательские привязки кажутся универсальным ответом. Кто-нибудь знает о наборе таких привязок? Такая коллекция проделала бы долгий путь, чтобы сделать jqm и ko хорошо играть вместе. – LOAS

ответ

2

Позвольте мне рассказать вам немного о том, как работает jQueryMobile.

Когда инициализируется страница, jQueryMobile выполняет итерацию по всем узлам с помощью атрибутов data-... и делает их мобильными элементами управления, изменяя DOM, чтобы реализовать эти изменения.

Ваша кнопка помещается в тег <script type="text/html">, так что jQM не может этого достичь. Это связано с тем, что браузер не анализирует содержимое в теге script.

Обычный способ избежать этой проблемы - реализовать пользовательскую привязку для KO, которая инициализирует текущий узел как кнопку. Проверьте мою версию своего кода: http://jsfiddle.net/romanych/z9sbC/3/

+0

Это замечательно и своевременно! Спасибо! – drizkol