【问题标题】:jQuery UI not applying after using KnockoutJS with koExternalTemplateEngine将 KnockoutJS 与 koExternalTemplateEngine 一起使用后,jQuery UI 不适用
【发布时间】:2014-04-15 23:38:05
【问题描述】:

我有这个简单的 js,它从 web api 加载数据,通过敲除应用绑定并应用 jQuery UI 小部件。

$(document).ready(function () {

    infuser.defaults.templateSuffix = ".tmpl.html";
    infuser.defaults.templateUrl = "Templates";

    $.get("data.json")
        .done(function(data) {
            ko.applyBindings(data);
            $(".accordion").accordion();
        });
});

当我将模板放在主 html 文件中时,一切正常。

但是当我将模板移动到单独的文件中并通过 koExternalTemplateEngine.js 加载它们时,模板会正确加载,但不会应用 jQueryUI。 jQueryUI 工作正常,因为我可以在浏览器控制台中调用它,一切都回来了。

【问题讨论】:

    标签: jquery-ui templates knockout.js template-engine


    【解决方案1】:

    我将从使用手风琴的自定义绑定 (see this related question) 开始,看看是否能解决问题。我的猜测是,它是加载外部模板、应用绑定和 jQuery 手风琴调用之间的时间问题(具体来说,我认为手风琴 HTML 在 jQuery 调用初始化时没有完全加载/构建)。

    【讨论】:

    • 我在 infuser 库中发现它默认使用 ajax.get 加载模板。当我强制它不通过 ajax 执行此操作时,它可以正常工作。仍然现在我必须弄清楚在 ajax 版本中是否有一个完整的处理程序/承诺。
    猜你喜欢
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    相关资源
    最近更新 更多