2017-05-23 65 views
0

是否可以使用角度範圍來創建for循環?例如。我有:

$scope.start = 1; 
$scope.end = 10; 

,並希望做出的(例如,我知道這是行不通的)

for($scope.start; $scope.start < $scope.end; $scope.start++) { 
    print(<input type="radio" name="count" value="$scope.start">); 
} 
+0

會發生什麼,當您運行的循環?將你的打印語句替換爲更合理的東西,就像一個簡單的console.log(「test」) – Fallenreaper

+1

for循環只是簡單的舊JavaScript,並且在這裏使用範圍沒有什麼特別之處。你在尋找ng-repeat嗎? –

+0

我從8:00到20:00有幾個小時,我有他們在數據庫中,我想做循環從8:00到20:00,增加30分鐘是否有可能與ng-repeat? –

回答

0

angular.module('app', []).controller('MyController', ['$scope', function($scope) { 
 
    $scope.start = '8:00'; 
 
    $scope.stop = '20:00'; 
 
    $scope.interval = '30'; 
 
    
 
    $scope.getTimeArray = function(start, stop, interval){ 
 
     var result = []; 
 
     if(interval == '0') 
 
     return result; 
 
    
 
     function toMinutes(time){ 
 
     var pair = time.split(':'); 
 
     return pair[0] * 60 + 1 * pair[1]; 
 
     } 
 
     function toString(minutes){ 
 
     var hours = Math.floor(minutes/60); 
 
     var min = (minutes - hours * 60); 
 
     min = min > 9 ? min : '0' + min; 
 
     return hours + ':' + min; 
 
     } 
 
      
 
     for(var i = toMinutes(start); i <= toMinutes(stop); i += 1 * interval) 
 
     result.push(toString(i)) 
 
     
 
     return result; 
 
    }  
 
}])
<script src="//code.angularjs.org/snapshot/angular.min.js"></script> 
 

 
<div ng-app='app' ng-controller="MyController"> 
 
    start: <input type="text" ng-model='start'> 
 
    </br> 
 
    stop: <input type="text" ng-model='stop'> 
 
    </br> 
 
    interval: <input type="text" ng-model='interval'> 
 
    </br> 
 
    <label ng-repeat-start='item in getTimeArray(start, stop, interval)'>{{item}}</label> 
 
    <input type="radio" name="count" value="{{item}}" ng-repeat-end> 
 
</div>

+0

Thansk很多!很棒! –