【问题标题】:Angular UI mask formatted output UNDEFINEDAngular UI 掩码格式化输出 UNDEFINED
【发布时间】:2013-03-24 13:37:45
【问题描述】:

好的,我正在使用角度 ui 掩码指令。我使用的过滤器是“99:99”小时的过滤器

我正在做的是抓取输入框的 ng-model,将其转换为字符串,循环遍历字符串,在第二个位置之后我添加一个“:”,然后返回格式化的字符串。但是当我这样做时,从函数返回的结果对于扩展是正确的。

假设我在输入框中输入 1212,通过使用 ui 掩码,它在输入框中看起来像这样 12:12。当我调用它返回这个 12:12undefined 的函数时...有人可以帮助我吗?

http://jsfiddle.net/edgaramaro/KWMmX/

这是我的代码: HTML:

<div ng-controller="MyCtrl">
    <input type="text" ui-mask="'99:99'" ng-model="time">{{time}}
    <br>{{convert(time)}}
</div>

JS 文件:

function MyCtrl($scope) {
    $scope.time = '';

    $scope.convert = function (input) {
        var str = input + '';
        var counter = 0;
        var newStr = '';

        while (counter <= str.length) {
            if (counter === 2) 
               newStr += ':';
            newStr += str[counter];
            counter++;
        }

    return newStr;
}

【问题讨论】:

    标签: javascript angularjs mask


    【解决方案1】:

    问题出在您的convert 函数中。你可以用一个普通的 for 循环来简化它。

    I've updated your fiddle

    另外,这是我对相关代码所做的:

    $scope.convert = function(str){
        if(!str) return;
        var counter = 0,
            newStr = '',
            max = Math.min(str.length, 4);
        for(var i = 0; i < max; i++) {
            if(i === 2) newStr += ':';
            newStr += str[i];
        }        
        return newStr;
    }
    

    【讨论】:

    • 没问题。这是你制定的一个很酷的指令。祝你好运
    猜你喜欢
    • 2016-10-09
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多