我从 Freeman 的 Pro Javascript for WebApps 中获取了一个自定义绑定,它基本上为属性添加了前缀和/或后缀
ko.bindingHandlers.formatAttr = {
init: function(element, accessor) {
$(element).attr(accessor().attr, composeString(accessor()));
},
update: function(element, accessor) {
$(element).attr(accessor().attr, composeString(accessor()));
}
};
使用这个 javascript 函数
function composeString(bindingConfig) {
var result = bindingConfig.value;
if (bindingConfig.prefix) {
result = bindingConfig.prefix + result;
}
if (bindingConfig.suffix) {
result += bindingConfig.suffix;
}
return result;
}
它工作正常,例如
<input data-bind="formatAttr: { attr: 'id', prefix: 'InterestedParty_', suffix: '__Id', value: $data.Guid }" type="hidden"/>
但是我怎样才能使它适用于同一输入中的两个不同属性呢?我尝试了一些事情,但要么失败,要么只接受最后一个。我可以为每个属性创建一个自定义属性,但这样我就会失去它的普遍性。
谢谢