Я пытаюсь реализовать пользовательскую привязку в нокауте для создания элемента select. Одно отличие, почему я не использую привязку привязки, - это потому, что мой выбор всегда будет таким же.Пользовательская привязка с выбором
Причина использования пользовательской привязки заключается в том, что у меня есть много мест, где будет использоваться один и тот же выбор, и я надеюсь, что это упростит мой код. Таким образом, моя попытка может быть найдена в this fiddle, и в настоящее время я борюсь с функцией обновления (я хочу, чтобы иметь возможность получить мой выбранный язык).
ko.bindingHandlers.langSelect = {
init: function(element, valueAccessor){
var langCur = ko.utils.unwrapObservable(valueAccessor());
ko.utils.domNodeDisposal.addDisposeCallback(element, function(){
$(element).remove();
});
var list = '', lang = ['en', 'de', 'ja'], i, l = lang.length, s ='';
for (i = 0; i < l; i++){
s = (lang[i] === langCur) ? 'selected' : '';
list += '<option value="'+ lang[i] +'"'+ s +'>'+ lang[i] +'</option>';
}
$(element).html(list);
},
update: function(element, valueAccessor){
}
}
Может ли кто-нибудь мне помочь? Если пользовательская привязка не самая лучшая опция, я не против ее изменения.
Я не совсем понимаю смысл, я должен сказать. Если один и тот же 'select' должен отображаться в разных местах, почему бы просто не поместить ту же разметку? С повторным использованием одного источника? –
@ GôTô следует сохранить выбранный язык для каждого пользовательского наблюдаемого. –
@ robert.westerlund спасибо, я посмотрю на это. –