javascript - 如何在 Knockout JS 更新 DOM 后运行代码

标签 javascript knockout.js

作为我观点的一部分,我有:

<ul data-bind="foreach: caseStudies">
    <li><a data-bind="text: title, attr: { href: caseStudyUrl }"></a></li>
</ul>

一旦 knockout 更新了 DOM,我想运行一些第 3 方代码。

caseStudies(data);
thirdPartyFuncToDoStuffToCaseStudyLinks(); <-- DOM not updated at this point.

关于如何 Hook knockout 以在正确的时间调用它有什么想法吗?

最佳答案

使用 afterRender 绑定(bind)可以帮助您。

<ul data-bind="foreach: { data:caseStudies, afterRender:checkToRunThirdPartyFunction }">
    <li><a data-bind="text: title, attr: { href: caseStudyUrl }"></a></li>
</ul>


function checkToRunThirdPartyFunction(element, caseStudy) {
    if(caseStudies.indexOf(caseStudy) == caseStudies().length - 1){
        thirdPartyFuncToDoStuffToCaseStudyLinks();
    }
}

关于javascript - 如何在 Knockout JS 更新 DOM 后运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14399443/

相关文章:

asp.net-mvc - asp.net mvc5 web api 2,如何通过 Razor 语法获取我的 web api url?

javascript - ko 未定义

knockout.js - 我们可以在一个页面中调用多个 ko.applyBindings 方法吗?

javascript - mongodb mongoose find - 如何获取适用的字符串作为结果?

javascript - 为什么在Windows 10中(重新加载后)在Windows 10中崩溃的相同Electron应用程序在Windows 10中会崩溃?

javascript - Chrome 扩展程序 - 未设置基本 href。请为 APP_BASE_HREF 提供一个值

javascript - 使用 Knockout jQuery 更新 HTML DOM 中的位置

javascript - 显示未评估键的 JSON POST 请求对象

javascript - 如何将相机始终设置在用户地理位置的中心

javascript - Knockoutjs 在尝试创建一系列无序列表时抛出异常