Angular UI掩码格式化输出未定义

Angular UI mask formatted output UNDEFINED

本文关键字:输出 未定义 格式化 掩码 UI Angular      更新时间:2023-09-26

好的,我使用的是角UI掩码指令。我使用的过滤器是小时'99:99'的过滤器

我正在做的是抓住输入框的ng模型,将其转换为字符串,通过字符串循环,在第二个地方我添加了一个":",然后返回格式化的字符串。但是当我这样做时,从函数返回的结果是正确的。

假设我在输入框中输入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;
}

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

我已经更新了你的小提琴

还有,下面是我对问题代码所做的:

$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;
}