如何在设定的时间间隔后以角度附加文字?

时间:2014-08-16 14:24:20

标签: javascript jquery angularjs angularjs-directive

我在jquery中做了一个简单的操作,我将文本附加到div中。我能够做到这一点 http://jsfiddle.net/naveennsit/rgeHe/ 但同样的事情我需要使用角度.js但它不附加数据..为什么?它怎么可能?这是我的plunker http://plnkr.co/edit/Vzq8yQdb52fJaE7Odv4X?p=preview

 <!DOCTYPE html>
    <html>

      <head>
        <link data-require="bootstrap-css@3.x" data-semver="3.2.0" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" />
        <script data-require="angular.js@*" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script>
        <script data-require="ui-bootstrap@0.10.0" data-semver="0.10.0" src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.10.0.js"></script>
        <link rel="stylesheet" href="style.css" />
        <script src="script.js"></script>
      </head>

      <body ng-app="app">
      <div ng-controller="cntrl">
      <div ng-repeat="i in items">{{i}}</div>
    </div>
      </body>
      <script>
      var app=angular.module('app',[]);
      app.controller('cntrl',function($scope,$interval){
        $scope.items=[];
        var i=0;
        $interval(function(){
          $scope.items.push("Hiii I am div");
          $scope.apply();
        },1000)
      })

      </script>

    </html>

1 个答案:

答案 0 :(得分:3)

您需要删除scope.$apply()($ timeout已经调用摘要周期,并且当它正在进行时尝试调用摘要时最终会出现错误)并提供{{ {1}}在数组索引上,否则它将因重复键而失败,因为数组只包含它将自动作为键的字符串,并且使用相同的字符串将导致重复键。另一种方法是将其更改为包含字符串的对象数组。例如: - $timeout

track by

$scope.items.push({name: "Hiii I am div"});

<强> Demo