我有同樣的要求 - 認爲這例子僅僅只爲img標籤屬性,它可以很容易地擴展爲所有的屬性:
ko.bindingHandlers.src = {
update: function (element, valueAccessor) {
ko.bindingHandlers.attr.update(element, function() {
return {src: valueAccessor()};
});
}
};
用法:
<img data-bind="src: imgUrl" />
上面的自定義綁定將遵循經典的方式,首先你將初始化observable,然後圖像src屬性被更新 - 這意味着,img src也將採用knockout observable的默認初始化值。
如果您需要相反的方式,你可以使用自定義綁定初始化回調:
ko.bindingHandlers.src = {
init: function(element, valueAccessor) {
var value = valueAccessor();
value(element.src);
},
update: function(element, valueAccessor) {
ko.bindingHandlers.attr.update(element, function() {
return {
src: valueAccessor()
};
});
}
};
中標記的用法是一樣的,但在初始化時效果反轉。
這裏是一個Plunker:https://plnkr.co/edit/CwI6KGirOkb3XpgS0Dj8?p=preview
你有沒有嘗試過任何方法呢?這並不完全清楚你所追求的目標,可能是因爲問題很廣泛,因爲有很多方法可以實現這一點。 (「這是可能的嗎?」,答案是沒有冒犯的,是「是的」;因爲這個帖子看起來更像是一個僞裝的任務而不是一個問題) – Jeroen