オプションの追加や更新など、jquery ui selectmenuプラグインをknockout.jsでうまく機能させようとしています。以下に作業コードがありますが、パフォーマンスはそれほど優れていません。より良い代替手段はありますか。タイムアウトを行っている理由は、配列がまだ選択にバインドされておらず、selectmenu が空であるためです。
https://github.com/fnagel/jquery-ui/wiki/Selectmenu
ko.bindingHandlers.dropdownlist = {
update: function (element, valueAccessor, allBindingsAccessor) {
var values = ko.utils.unwrapObservable(valueAccessor());
var allBindings = allBindingsAccessor();
if (allBindings.options) {
setTimeout(function () {
$(element).selectmenu("destroy").selectmenu(values || {});
}, 0);
} else {
$(element).selectmenu(values || {});
}
}
};