使用Knockout绑定jQuery Mobile窗口小部件的属性

Binding attributes of jQuery Mobile widgets with Knockout

本文关键字:小部 属性 窗口 Mobile Knockout 绑定 jQuery 使用      更新时间:2023-09-26

我的jQuery Mobile应用程序中有一个页面,有两个基于链接的按钮,我想将它们的属性绑定到ko.obsobservable()对象:

<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和knockout一起工作?我需要为它编写自定义绑定吗?

感谢

之所以会发生这种情况,是因为当你按下锚定标签时,这些新标签就不存在了。要在它们被创建后扣上扣子,你必须告诉淘汰赛在它们被添加到收藏中后做点什么。值得庆幸的是,knockout为您提供了一个函数,该函数在元素在屏幕上呈现后立即执行。

这里可以看到使用afterAdd的示例:

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

不幸的是,我只见过它与模板一起工作,而不是与内联html一起工作,所以你可能需要稍微重构你的html。