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



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

在我的控制器中,我创建了以下函数:

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

在我的HTML中,我试图通过拉入帖子的mongoDB id来显示博客帖子创建的时间,我在$范围中将其转换为适当的格式。时间函数:

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

从控制台。日志和测试在控制器中,我可以看到:

  1. 正确的id正在从Mongo中拉入
  2. $scope.time()函数正确地将id转换为日期字符串
  3. 日期字符串以我想要的方式显示在浏览器中

那么,是什么导致了无限循环,我如何才能删除它,同时仍然以相同的格式显示数据?

任何帮助/想法将非常感激!

我是基于你正在使用角矩的假设来回答这个问题的。

看起来角矩'am-time-ago'指令期待一个模型值,所以它会不断调用你的time函数,导致无限的消化循环。

因此,当您获得模型并将此值传递给'am-time-ago'指令时,应该构建时间。像这样:

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

,你的标记是

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

看到砰砰作响。打开控制台查看错误发生的时间

最新更新