4

这是 jsFiddle 的链接:AngularJS:显示数据

我有 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

我想Test-1 : Windows Test在开始和 30 秒Test-2 : Linux Test后以及 30 秒后显示Test-3 : Unix Test等等..!!

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

我应该如何用 AngularJS 实现这个?

4

1 回答 1

3

您可以通过使用设置时间间隔( angular.js 中的$interval )来做到这一点。我不知道我该如何向你解释。但我会用fiddler给出我的代码,你可以看到我做了什么。

因此,请尝试以下方式而不是您的代码。

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

Javascript 更改

下面的代码每人工作 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 演示

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

于 2015-04-16T10:59:41.523 回答