Я столкнулся с подобной проблемой, пытаясь быть хитрым с attr: {'class': что-то, 'style': somethingElse} и прекратил попытки заставить привязку attr работать в IE7.
Что работало, так это написание пользовательской привязки для ручного применения jquery:
ko.bindingHandlers.customCss = {
init: function (element, valueAccessor, allBindingsAccessor) {
var css = ko.utils.unwrapObservable(valueAccessor());
$(element).addClass(css);
},
update: function (element, valueAccessor, allBindingsAccessor) {
var css = ko.utils.unwrapObservable(valueAccessor());
$(element).addClass(css);
}
};
Так что в вашем случае я бы попытался добавить следующее к вашему документу уже перед ko.applyBindings ():
ko.bindingHandlers.customName= {
init: function (element, valueAccessor, allBindingsAccessor) {
var name= ko.utils.unwrapObservable(valueAccessor());
$(element).attr('name', 'id_' + name);
},
update: function (element, valueAccessor, allBindingsAccessor) {
var name= ko.utils.unwrapObservable(valueAccessor());
$(element).attr('name', 'id_' + name);
}
};
затем свяжите ваш ввод как:
<input data-bind="checked: isRequest, customName: id }" type="checkbox" />