Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html ng-app="ericTestApp">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
  <script src="//code.angularjs.org/1.3.15/angular-route.js"></script>
  
  
</head>
<body>
<ng-view></ng-view>
</body>
</html>
 
var digestTTL = 3; // 手动设置 digestTTL
var app = angular.module('ericTestApp', ['ngRoute']).config(['$routeProvider', '$rootScopeProvider', function ($routeProvider, $rootScopeProvider) {
  $routeProvider.when('/bad', {
    controller: 'BadCtrl', 
    template: '<div>today: {{today | date :"yyyy-MM-dd HH:mm:ss"}}</div><div>today: {{tomorrow() | date :"yyyy-MM-dd HH:mm:ss"}}</div>'
  }).when('/good', {
    controller: 'GoodCtrl', 
    template: '<div>today: {{today | date :"yyyy-MM-dd HH:mm:ss"}}</div><div>today: {{tomorrow() | date :"yyyy-MM-dd HH:mm:ss"}}</div>'
  }).when('/deepTest', {
    controller: 'DeepTestCtrl', 
    template: '<div>today: {{today | date :"yyyy-MM-dd HH:mm:ss"}}</div><div>today: {{tomorrow() | date :"yyyy-MM-dd HH:mm:ss"}}</div>'
  }).otherwise({
    redirectTo: '/deepTest'
  });
  // 手动设置digestTTL
  $rootScopeProvider.digestTtl(digestTTL);
}]);
// 抛出infdig error
app.controller('BadCtrl', function ($scope) {
  $scope.today = new Date();
  $scope.tomorrow = function () {
    console.log('tomorrow called ' + $scope.today);
    var tmr = $scope.today;
    tmr = tmr.setDate(tmr.getDate() + 1);
    return tmr;
  };
});
// 正常运行
app.controller('GoodCtrl', function ($scope) {
  $scope.today = new Date();
  $scope.tomorrow = function () {
    console.log('tomorrow called' + $scope.today);
    var tmrInMs = $scope.today.getTime();
    tmr = new Date(tmrInMs + (24 * 60 * 60 * 1000));
    return tmr;
  };
});
// 用于测试Angular Digest的次数 
var n = 1;
app.controller('DeepTestCtrl', function ($scope) {
  $scope.today = new Date();
  $scope.tomorrow = function () {
    var tmrInMs = $scope.today.getTime();
    console.log("digest " + n++);
    tmr = new Date(tmrInMs + (24 * 60 * 60 * 1000) * n);
    return tmr;
  };
});
// app.run();
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
erichua23pro
0viewers