knockout.js - 更改应用 Knockout 绑定(bind)的顺序

标签 knockout.js

我正在创建一个 Knockout 绑定(bind),它将作为 jQuery 小部件的包装器。此小部件将事件处理程序应用于子元素。不幸的是,小部件的事件处理直接应用于子元素,而不是委托(delegate)。问题是我有一个 foreach绑定(bind)到同一个元素,但我需要在 foreach 之后应用自定义绑定(bind)应用绑定(bind)。

显然,正确的做法是修复 jQuery 插件,但目前这不是一个选项。我想知道是否有任何适合我的解决方法。例如,有没有办法执行以下任何操作?

  • 检测是否应用了特定绑定(bind)
  • 影响绑定(bind)申请的顺序
  • 安全地强制执行另一个绑定(bind)

  • 更新:

    我应该提到的一个方面是,这种习俗和 foreach绑定(bind)驻留在模板中。因此,直接修改 DOM 的解决方案对我不起作用,因为它实际上会修改模板。

    最佳答案

    在您的 bindingHandler 上添加一个 after 属性,其中包含一组依赖项

    ko.bindingHandlers.myHandler = {
        init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
            // Actual code
        },
        update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
            // Actual code
        },
        after:['foreach']
    };
    

    关于knockout.js - 更改应用 Knockout 绑定(bind)的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025902/

    相关文章:

    javascript - knockout 条件绑定(bind)(但不是 native "if"方式)

    javascript - 重用 Knockout.js ViewModel

    knockout.js - KnockoutJS - 对 ko.computed 和 AJAX 请求的不满

    javascript - 如何在 Knockout.js 中正确清除复选框单击上的另一个字段?

    javascript - View 和 View 模型连接

    javascript - 通过原型(prototype)将计算的可观察对象添加到构造函数

    javascript - 将 knockout.simpleGrid.3.0.js 与 Require.js 结合使用

    javascript - 调用 ViewModel 范围之外的函数

    knockout.js - 通过 knockout 跨 viewModel 访问函数?

    javascript - Controller 上未命中断点,但返回了来自 Controller 的数据