【问题标题】:Formatting Negative Numbers in Brackets in knockout.js在 knockout.js 中格式化括号中的负数
【发布时间】:2014-10-09 13:26:33
【问题描述】:

如何使用 knockout.js 格式化负百分比并显示在括号中?

function suppressNonNumeric(val,bindingName, allBindingsAccessor) 
{
    return allBindingsAccessor.has(bindingName) && ko.utils.unwrapObservable(allBindingsAccessor.get(bindingName)) && (typeof val === 'undefined' || val === null || isNaN(val));
}

ko.bindingHandlers.percent = {
positions : ko.observable(2),
update : function(element, valueAccessor, allBindingsAccessor) {
    return ko.bindingHandlers.text.update(element, function() {
        var tempVal = ko.utils.unwrapObservable(valueAccessor());
        if(suppressNonNumeric(tempVal,'suppressNull', allBindingsAccessor) )
        {
            return '';
        }
        var value = +(tempVal || 0),
        positions = ko.utils.unwrapObservable(allBindingsAccessor.has('positions') ?    allBindingsAccessor.get('positions') : ko.bindingHandlers.percent.positions);
        return value.toFixed(positions).replace(/(\d)(?=(\d{3})+\.)/g, "$1,") ;
    });

如何修改此函数以检查值是否为负,例如:-23.44 并更改为(23.44)

【问题讨论】:

    标签: jquery knockout.js knockout-mapping-plugin


    【解决方案1】:

    如果您仍然需要它,我认为以下应该可行:

    ...
    var value = Math.abs(tempVal), // tempVal is defined and is a number, we checked it in suppressNonNumeric
    ...
    return '(' value.toFixed(positions).replace(/(\d)(?=(\d{3})+\.)/g, "$1,") + ')';
    ...
    

    【讨论】:

      猜你喜欢
      • 2013-11-04
      • 1970-01-01
      • 2011-01-04
      • 2018-11-23
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      相关资源
      最近更新 更多