Javascript 在Knockoutjs中设置引导选择器默认值
我将以下引导选择器包装在自定义绑定中。我正在尝试填充各种邮件提供商的列表。我正确渲染,但无法设置值。注意我的代码Javascript 在Knockoutjs中设置引导选择器默认值,javascript,jquery,twitter-bootstrap,knockout.js,Javascript,Jquery,Twitter Bootstrap,Knockout.js,我将以下引导选择器包装在自定义绑定中。我正在尝试填充各种邮件提供商的列表。我正确渲染,但无法设置值。注意我的代码this.selectedEmailProvider=ko.observable('MAILCHIMP'),它应该将MAILCHIMP设置为所选项目 我的自定义绑定可能有问题吗 /** * Selectpicker binding * @type {Object} */ ko.bindingHandlers.selectPicker = { init: function(ele
this.selectedEmailProvider=ko.observable('MAILCHIMP')
,它应该将MAILCHIMP
设置为所选项目
我的自定义绑定可能有问题吗
/**
* Selectpicker binding
* @type {Object}
*/
ko.bindingHandlers.selectPicker = {
init: function(element, valueAccessor, allBindingsAccessor) {
if ($(element).is('select')) {
if (ko.isObservable(valueAccessor())) {
ko.bindingHandlers.value.init(element, valueAccessor, allBindingsAccessor);
}
$(element).selectpicker().addClass('form-control');
}
},
update: function(element, valueAccessor, allBindingsAccessor) {
if ($(element).is('select')) {
var selectPickerOptions = allBindingsAccessor().selectPickerOptions;
if (typeof selectPickerOptions !== 'undefined' && selectPickerOptions !== null) {
var options = selectPickerOptions.options,
optionsText = selectPickerOptions.optionsText,
optionsValue = selectPickerOptions.optionsValue,
optionsCaption = selectPickerOptions.optionsCaption;
if (ko.utils.unwrapObservable(options).length > 0) {
ko.bindingHandlers.options.update(element, options, ko.observable({
optionsText: optionsText,
optionsValue: optionsValue,
optionsCaption: optionsCaption
}));
}
}
if (ko.isObservable(valueAccessor())) {
ko.bindingHandlers.value.update(element, valueAccessor);
}
$(element).selectpicker('refresh');
}
}
};
如果您发现我尝试过的这个实现有任何问题,请告诉我。注意这一行:var value=allBindingsAccessor.get('value');if(typeof value!=='undefined'){$(element).selectpicker('val',value());}