【问题标题】:Binding attributes of jQuery Mobile widgets with Knockout使用 Knockout 绑定 jQuery Mobile 小部件的属性
【发布时间】:2012-02-24 03:27:59
【问题描述】:

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

谢谢

【问题讨论】:

    标签: javascript data-binding jquery-mobile knockout.js


    【解决方案1】:

    发生这种情况是因为当您为锚标签设置按钮时,这些新标签不存在。要在创建它们后将它们扣上,您将不得不在它们被添加到集合后告诉 knockout 做某事。值得庆幸的是,knockout 为您提供了一个在元素呈现在屏幕上后立即执行的函数。

    一个使用afterAdd的例子可以在这里看到:

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

    不幸的是,我只见过它适用于模板而不是内联 html,因此您可能需要稍微重构您的 html。

    【讨论】:

    • 谢谢,它成功了。我需要引入模板,并且不能使用基于链接的按钮(因为它们不包含 jqm 方法),但它可以工作:)
    猜你喜欢
    • 2015-01-19
    • 2013-11-02
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多