1
我試圖爲特殊數字格式創建自定義綁定。KO自定義綁定writeValueToProperty失敗
ko.bindingHandlers['valueTest'] = {
'init': function (element, valueAccessor, allBindingsAccessor) {
var valueUpdateHandler = function() {
var modelValue = valueAccessor();
var elementValue = ko.selectExtensions.readValue(element);
ko.expressionRewriting.writeValueToProperty(modelValue, allBindingsAccessor, 'value', elementValue);
}
ko.utils.registerEventHandler(element, "change", valueUpdateHandler);
},
'update': function (element, valueAccessor) {
var newValue = ko.utils.unwrapObservable(valueAccessor());
var elementValue = ko.selectExtensions.readValue(element);
if (newValue !== elementValue) {
ko.selectExtensions.writeValue(element, newValue.toFixed(2).replace(".", ","));
}
}
};
上撥弄http://jsfiddle.net/PAFTR/11/
也可以,但它更新失敗(螢火說:類型錯誤:ko.expressionRewriting.writeValueToProperty不是一個函數)。
我知道觀察到擴展的,但我有情況下,當我提供複雜的JSON單ko.observable或者ko.observableArray。所以,請教我如何創建自定義綁定:) – edgecrusher
請閱讀[官方文檔](http://knockoutjs.com/documentation/custom-bindings.html)如何創建自定義綁定 – Pavlo