javascript - 如何订购 knockout 绑定(bind)?

标签 javascript jquery knockout.js

我正在使用 knockout.js。我陷入了一个有点奇怪的境地(很难解释,但我正在努力,如果我不清楚,抱歉)。我在单个选择列表上使用自定义绑定(bind)和选项绑定(bind):

  <select data-bind="options : arrayOfOptions, optionsText: 'Name', 
           optionsValue: 'Name', chosen: { }">
  </select>

ko.bindingHandlers.chosen = {
    init: function (element, valueAccessor, allBindingAccessor, 
                    viewModel, bindigContext) {
        var options = ko.utils.unwrapObservable(valueAccessor() || {});
        $(element).chosen(options);
    }
};

此处在运行时选择列表将填充 arrayOfOptions 数组中的所有可用选项,chosen 是一个自定义绑定(bind),我在其中应用 CHOSEN PLUGIN在选择列表上。

现在我在这里面临的问题是,在自定义绑定(bind)中,当我在选择列表上应用选择插件时,选择列表中没有填充 arrayOfOptions 数组中的选项。用简单的术语来说就是 自定义绑定(bind)选项绑定(bind) 之前执行。谁能给我一个解决方案,以便在选项绑定(bind)之后应用自定义绑定(bind)?

最佳答案

使用此绑定(bind)所依赖的 bindingHandler 名称数组创建一个 after 属性。

ko.bindingHandlers.chosen = { 初始化:函数(元素,valueAccessor,allBindingAccessor, viewModel, bindigContext) { var options = ko.utils.unwrapObservable(valueAccessor() || {}); $(元素).选择(选项); }, 之后:['选项'] };

关于javascript - 如何订购 knockout 绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13210663/

相关文章:

javascript - JavaScript 方法 array.forEach 在 Chrome 中是否有效?

javascript - spring modelandview 重定向在 jquery ajax 调用中不起作用

javascript - Angular 为什么不更新值

php - 在 php 和 jquery 中添加行时出错?

javascript - 是否用具体对象推送到可观察数组?

javascript - 如何在模板内的对象上执行函数

JavaScript 表格分页呈现 JSON 数据

javascript - JQuery slider next 和 prev 按钮仅在单击垃圾邮件时才有效

javascript - 如何更新 Knockout.js 中的对象属性值

javascript - 为什么 knockoutjs 没有正确绑定(bind)?