我有一个应用程序,其中有一个用于表单输入的模板。
由于页面上将有相同输入/标签的多个版本,因此输入 ID 不能被硬编码。
相反,我构建了一个用于绑定 attr 的函数('id' 用于输入,'for' 用于标签)。
这在 Chrome 和 IE9 中效果很好,但在 IE8 和 IE7 中失败。
我有一个标签和输入:
<label data-bind="attr: {for: doId('name_first')}">First Name*</label>
<input type="text" name="name-first" data-bind="value: name_first, attr: {id: doId('name_first')}" />
我的淘汰码:
function MyViewModel() {
var self = this;
self.person_id = ko.observable('1234');
self.name_first = ko.observable();
self.doId = function(seed){
return seed + "-" + self.person_id();
};
}
ko.applyBindings(new MyViewModel());
JsFiddle似乎在 IE8 中不起作用,所以这里有一个jsbin。
有人遇到过这种情况并有解决方法吗?
使用输入/标签重复模板必须是一个常见问题。
——斯科特