Атрибуты привязки виджетов jQuery Mobile с помощью Knockout - PullRequest
2 голосов
/ 01 февраля 2012

У меня есть страница в моем приложении jQuery Mobile с двумя кнопками на основе ссылок, я хочу связать их атрибуты с объектами ko.observable ():

<div data-role="page" id="details">
    <div data-role="content">
        <!-- ko with: selectedPerson -->
        <div>
            <h2 data-bind="text: name"></h2>                                        
            <a data-role="button" data-bind="attr: { href: phoneLink, title: phone}, text : phone"></a>         
            <a data-role="button" data-bind="attr: { href: emailLink, title: email}, text : email"></a>
        </div>
        <!-- /ko -->                
    </div>
</div>

Проблема в том, что ссылки не отображаются в виде кнопок, я вижу их как простые ссылки.

Как заставить JQM и нокаут работать вместе? Нужно ли для него писать собственные привязки?

Спасибо

1 Ответ

2 голосов
/ 01 февраля 2012

Это происходит потому, что когда вы застегиваете свои якорные теги, эти новые теги отсутствуют.Чтобы застегнуть их на пуговицы после их создания, вам нужно будет сказать нокауту сделать что-то после того, как они были добавлены в коллекцию.К счастью, knockout предоставляет вам функцию, которая выполняется сразу после визуализации элементов на экране.

Пример использования afterAdd можно увидеть здесь:

http://knockoutjs.com/examples/animatedTransitions.html

К сожалению, я когда-либо видел, чтобы он работал только с шаблонами, а не с встроенным html, поэтому вам, возможно, придется немного реорганизовать html.

...