在AngularJS中显示时间间隔后的数据

时间:2015-04-16 10:38:48

标签: javascript angularjs angularjs-ng-repeat ng-controller

以下是jsFiddle的链接:AngularJS : Display Data

我有HTML文件如下:

<div ng-controller="myCtrl">         
    <div ng-repeat="test in tests">
           <p>{{test.testName}}</p>
    </div>
</div>

.js文件下的控制器如下:

var app = angular.module('myApp', []);

function myCtrl($scope) {
    $scope.tests = [{
        "testName" : "Test-1 : Windows Test"
        }, 
        {
        "testName" : "Test-2 : Linux Test"
        },          
        {
        "testName" : "Test-3 : Unix Test"
        }, 
    ];
}

我的问题是:

目前结果如下:

Test-1 : Windows Test
Test-2 : Linux Test
Test-3 : Unix Test

我希望在开始时和30秒后显示Test-1 : Windows Test Test-2 : Linux Test,在30秒后显示Test-3 : Unix Test等等。!!

再次完成所有数据后,Test-1 : Windows Test将再次出现!! !!

我应该如何使用AngularJS实现它?

1 个答案:

答案 0 :(得分:3)

您可以使用angular.js中的设置时间间隔( $ interval )来完成此操作。我不知道如何向你解释。但我会用 fiddler 给我的代码,你可以看到我做了什么。

请尝试以下方式而不是代码。

<div ng-app="myApp">
<div ng-controller="myCtrl">
   <p>{{testName}}</p>
</div>
</div>

Javascript更改

以下代码由eache工作30秒(我不知道确切的30秒),但你可以把你需要的时间放在

    angular.module('myApp',[])
   .controller("myCtrl",["$scope","$interval",function($scope, $interval){
        $scope.tests = [{
            "testName" : "Test-1 : Windows Test"
            }, 
            {
            "testName" : "Test-2 : Linux Test"
            },          
            {
            "testName" : "Test-3 : Unix Test"
            } 
        ];
         var count=0;                    
         $interval(function(){                         
                $scope.testName=$scope.tests[count].testName;
                 count=count+1;
                if($scope.tests.length==count){
                  count=0;
                }                               
         },30000);   // I don't know it's exact 30 seconds     
    }]);

示例JSFiddle Demo

我已经为您更新了正确的代码。