Angular Infdig错误,但功能正常运行

时间:2015-10-13 23:23:48

标签: angularjs mongodb

我不断得到'错误:$ rootScope:infdig 在我的应用程序上无限$ digest循环',但导致它的实际功能仍然在浏览器中正确显示。

在我的控制器中,我正在创建以下功能:

$scope.time = function(id){
   return new Date(parseInt(id.substring(0, 8), 16) * 1000);
}

在我的HTML中,我试图通过拉入帖子的mongoDB id来显示创建博客文章的时间,我将其转换为$ scope.time函数中的相应格式:

<span am-time-ago="time(post._id)"></span>

从console.logs和控制器中的测试,我可以看到:

  1. 正在从Mongo
  2. 中提取正确的ID
  3. $ scope.time()函数正确地将id转换为日期字符串
  4. 日期字符串以我想要的方式显示在浏览器中
  5. 那么,是什么导致无限循环?如何在仍然以相同格式显示数据的同时将其删除?

    非常感谢任何帮助/想法!

1 个答案:

答案 0 :(得分:0)

我假设您正在使用角度矩,我的答案基于此。

看起来像angular-moment 'am-time-ago'指令期望一个模型值,所以它将继续调用你的time函数,导致无限的摘要周期。

因此,建立获取模型的时间并将此值传递给'am-time-ago'指令。像这样:

$scope.post.$time = $scope.time($scope.post._id);

,你的标记将是

<span am-time-ago="post.$time"></span>

plunker。打开控制台以查看错误发生的时间。