jQuery Mobile Popup和ListView,以及Popup div内的Knockout.js数据绑定 - 不工作

时间:2012-11-01 19:49:37

标签: jquery jquery-mobile knockout.js knockout-2.0

我正在使用jQuery Mobile和knockout.js在移动网站上工作。我有一个(某种)复杂场景,jQuery Mobile的弹出窗口和listview以及弹出窗口内的敲除数据绑定,我无法让它工作。

我有一个嵌套的警报列表,如下所示。对于每一天,它会创建一个list-divider行。然后在每天内,每个警报都有一行。

<ul id="alarmslist" data-bind="foreach: days" data-role="listview">
    <li data-role="list-divider"><span data-bind="text: date"></span></li>
    <!-- ko foreach: alarms1 -->
    <li>
        <a href="#popupBasic" data-rel="popup"><span data-bind="text: alarmName"></span></a>
        <section id="popupBasic" data-role="popup" data-corners="true" data-history="false" data-overlay-theme="a">
            <a href="#" class="ui-btn-right" data-icon="delete" data-iconpos="notext" data-rel="back" data-role="button" data-theme="c">Close</a>
            <ul data-role="listview" data-inset="true">
                <li data-role="divider" data-theme="a">Alarm Options</li>
                <li><section class="alarmDetail"><span data-bind="text: alarmID"></span></section></li>
                <li><a href="#">Go to Data</a></li>
                <li><a href="#">Acknowledge</a></li>
            </ul>
        </section>
    </li>
    <!-- /ko -->
</ul>

我需要将弹出窗口小部件附加到警报行,以便在单击li行时弹出窗口显示该行的选项列表。这应该适用于每一行。每行的选项取决于alarmID键。

这是问题发生的地方。我正在尝试数据绑定alarmID字段(这是alarms1数组的一部分),以便下一个操作知道如何处理正确的警报。但是,我得到了一个淘汰赛错误,因为它无法找到alarmID()。我想jQuery Mobile正在创建DOM底部的弹出部分,远低于我的视图和视图模型被定义为淘汰片。

无论如何,有没有人有任何想法如何“修复”这种情况?或者,知道一个解决方法?或者,甚至其他一些解决方案?

1 个答案:

答案 0 :(得分:0)

我也在Knockout.js Google小组上发布了这个问题并收到了帮助我的答案。它在https://groups.google.com/forum/?fromgroups=#!topic/knockoutjs/xQYZrxQ6Jsg。感谢。