我正在使用 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/