首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么angularjs中的ng-style不能正确运行?

为什么angularjs中的ng-style不能正确运行?
EN

Stack Overflow用户
提问于 2020-07-23 08:57:52
回答 2查看 148关注 0票数 1

我有一个ng样式,如下图所示的ng-style

为什么count不显示3,4而显示22,23

EN

回答 2

Stack Overflow用户

发布于 2020-07-23 09:01:49

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<body ng-app="myApp" ng-controller="myCtrl">

<h1 ng-style="countStyle()">Welcome {{count}}</h1>
<h1 ng-style="countStyle()">Welcome {{count}}</h1>

<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
  
  $scope.myObj = {
    "color" : "white",
    "background-color" : "coral",
    "font-size" : "60px",
    "padding" : "50px"
  }
  var i = 2;
  $scope.count = 1;
  $scope.countStyle = function(){
    i += 1;
    $scope.count = i;
    return $scope.myObj;
  }
});
</script>

</body>
</html>

enter image description here

票数 0
EN

Stack Overflow用户

发布于 2020-07-23 11:08:21

22 (2 + 20)

这是因为您下面的每个代码都将达到摘要循环阈值的限制,即10:

代码语言:javascript
复制
<h1 ng-style="countStyle()">Welcome {{count}}</h1>
<h1 ng-style="countStyle()">Welcome {{count}}</h1>

因为上面有2个绑定,所以它将运行摘要循环20次并中止。

尝试删除上述行中的一行,如:

代码语言:javascript
复制
<h1 ng-style="countStyle()">Welcome {{count}}</h1>

然后它将显示12。(2+10)

demo

这是因为您的方法总是在每个摘要周期中被调用,请尝试在您的$scope.countStyle方法中添加console.log。

它将抛出一个名为:[angular.min.js:124 Error:$rootScope:infdig](https://code.angularjs.org/1.6.9/docs/error/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22:%22fn:%20function(c,%5Cne,g,f%29%7Bg%3Dd%26%26f%3Ff%5B0%5D:a(c,e,g,f%29;return%20b(g,c,e%29%7D%22,%22newVal%22:%2214%22,%22oldVal%22:%2212%22%7D,%7B%22msg%22:%22fn:%20function(c,%5Cne,g,f%29%7Bg%3Dd%26%26f%3Ff%5B0%5D:a(c,e,g,f%29;return%20b(g,c,e%29%7D%22,%22newVal%22:%2215%22,%22oldVal%22:%2213%22%7D%5D,%5B%7B%22msg%22:%22fn:%20function(c,%5Cne,g,f%29%7Bg%3Dd%26%26f%3Ff%5B0%5D:a(c,e,g,f%29;return%20b(g,c,e%29%7D%22,%22newVal%22:%2216%22,%22oldVal%22:%2214%22%7D,%7B%22msg%22:%22fn:%20function(c,%5Cne,g,f%29%7Bg%3Dd%26%26f%3Ff%5B0%5D:a(c,e,g,f%29;return%20b(g,c,e%29%7D%22,%22newVal%22:%2217%22,%22oldVal%22:%2215%22%7D%5D,%5B%7B%22msg%22:%22fn:%20function(c,%5Cne,g,f%29%7Bg%3Dd%26%26f%3Ff%5B0%5D:a(c,e,g,f%29;return%20b(g,c,e%29%7D%22,%22newVal%22:%2218%22,%22oldVal%22:%2216%22%7D,%7B%22msg%22:%22fn:%20function(c,%5Cne,g,f%29%7Bg%3Dd%26%26f%3Ff%5B0%5D:a(c,e,g,f%29;return%20b(g,c,e%29%7D%22,%22newVal%22:%2219%22,%22oldVal%22:%2217%22%7D%5D,%5B%7B%22msg%22:%22fn:%20function(c,%5Cne,g,f%29%7Bg%3Dd%26%26f%3Ff%5B0%5D:a(c,e,g,f%29;return%20b(g,c,e%29%7D%22,%22newVal%22:%2220%22,%22oldVal%22:%2218%22%7D,%7B%22msg%22:%22fn:%20function(c,%5Cne,g,f%29%7Bg%3Dd%26%26f%3Ff%5B0%5D:a(c,e,g,f%29;return%20b(g,c,e%29%7D%22,%22newVal%22:%2221%22,%22oldVal%22:%2219%22%7D%5D,%5B%7B%22msg%22:%22fn:%20function(c,%5Cne,g,f%29%7Bg%3Dd%26%26f%3Ff%5B0%5D:a(c,e,g,f%29;return%20b(g,c,e%29%7D%22,%22newVal%22:%2222%22,%22oldVal%22:%2220%22%7D,%7B%22msg%22:%22fn:%20function(c,%5Cne,g,f%29%7Bg%3Dd%26%26f%3Ff%5B0%5D:a(c,e,g,f%29;return%20b(g,c,e%29%7D%22,%22newVal%22:%2223%22,%22oldVal%22:%2221%22%7D%5D%5D)的错误

这意味着达到了10次$digest()迭代。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63045268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档