【问题标题】:Format Currency Knockout Binding格式化货币敲除绑定
【发布时间】:2013-07-29 23:30:13
【问题描述】:

无法让我的自定义 bindingHandlers 工作。加载时不会格式化货币,但在文本框中输入值时会格式化。我需要它在加载时格式化。

我正在使用这个工具:Format Currency

ko.bindingHandlers.currency = {
    init: function (element, valueAccessor) {
        //initialize datepicker with some optional options
        $(element).formatCurrency({ roundToDecimalPlace: 0 });

        //handle the field changing
        ko.utils.registerEventHandler(element, "blur", function () {
            var observable = valueAccessor();
            observable($(element).formatCurrency({ roundToDecimalPlace: 0 }));
        });

    },
    update: function (element, valueAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor());
        ko.bindingHandlers.text.update(element, function () { return value; });
        $(element).formatCurrency({ roundToDecimalPlace: 0 });
    }
};

【问题讨论】:

  • 请更具体!究竟是什么不适用于您的绑定处理程序?你有错误吗?出乎意料的事情发生了,应该怎么办?等

标签: knockout.js bindinghandlers


【解决方案1】:

我认为它在加载时不更新的原因是因为您正在设置文本而不是适合文本框(输入)的值。这是我的“更新”的样子:

update: function (element, valueAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor());

        if($(element).is("input")) {
            $(element).val(value);
        }
        else {
            $(element).text(value);
        }

        $(element).formatCurrency();


    }

【讨论】:

    猜你喜欢
    • 2016-04-25
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多