1

特別な数値書式設定用のカスタム バインドを作成しようとしています。

    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/

しかし、更新に失敗します (firebug によると: TypeError: ko.expressionRewriting.writeValueToProperty は関数ではありません)。

4

1 に答える 1

2

これは、観察可能なエクステンダーにより適しているように見えますか? 私がやったこのフィドルをチェックしてください

http://jsfiddle.net/yEgmt/

その使用のように

this.number = ko.observable().extend({ numeric: true })
于 2012-11-26T12:59:13.567 に答える