2013-03-24 15 views
1

好吧,我正在使用角度ui掩碼指令。使用的過濾器是一個小時'99:99'角度UI掩碼格式化輸出UNDEFINED

我在做什麼是抓住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; 
} 

回答

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; 
} 
+1

太感謝你了! – 2013-03-24 05:45:09

+0

沒問題。這是一個很酷的指令,你在一起。祝你好運 – 2013-03-24 15:42:46