2
我正嘗試使用knockoutjs自定義綁定來創建組件。這可能不是一個好主意,如果還有其他方法可以做同樣的事情,我可以選擇。將自定義綁定的值傳遞給在自定義綁定中添加的DOM元素
這個想法是設置一個元素的自定義綁定,以便元素內容根據傳遞給綁定的數據來填充。
例如(在玉模板),我會寫:
div(data-bind="keyValueEditor: $data.somePropertyHoldingSomeData")
而且我有以下的(簡化的問題)自定義綁定:
ko.bindingHandlers.keyValueEditor = {
init: function (element, valueAccessor) {
var value = valueAccessor();
var valueUnwrapped = ko.unwrap(value);
$("<span data-bind='text: theDataThatWasPassedToTheBinding.value'/>").appendTo(element);
}
},
update: function (element, valueAccessor) {
}
};
這裏value
是可觀察到的那我想使用text
綁定綁定到跨度內容。我的問題是,我不知道要在theDataThatWasPassedToTheBinding
中放什麼,因此它等於$data.somePropertyHoldingSomeData
,它作爲綁定的值傳遞。
我想:
$("<span data-bind='text: " + valueAccessor().value + "'/>").appendTo(element);
和
$("<span data-bind='text: " + ko.unwrap(valueAccessor()).value + "'/>").appendTo(element);
這可能嗎?
不知道誰-1'd,這是一個良好的書面問題。 (謹慎詳細,downvoter?) – Jeroen
曼努埃爾,如果你有機會創建一個小提琴它可能會更容易幫助你解決這個問題。 –