2

接收数据

$scope.$watch("build.idx", ->
  $http.get("/build/" + $scope.build.idx + ".json").success((data) ->
    $scope.build = data
  )
)

ng-include 在 ng-repeat 中

.build-stage
  .row{ "ng-repeat" => "stage in build.stages" }
    %div{ "ng-include" => "donoting.html" } # donoting.html is blank

第一个加载页面,就OK了。并且在更改 build.idx 时,它会导致

10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [["fn: function (){var a=d.url(),b=h.$$replace;p&&a==h.absUrl()||(p++,c.$evalAsync(function(){c.$broadcast(\"$locationChangeStart\",h.absUrl(),a).defaultPrevented?h.$$parse(a):(d.url(h.absUrl(),b),g(a))}));h.$$replace=!1;return p}; newVal: 8; oldVal: 7"],["fn: function (){var a=d.url(),b=h.$$replace;p&&a==h.absUrl()||(p++,c.$evalAsync(function(){c.$broadcast(\"$locationChangeStart\",h.absUrl(),a).defaultPrevented?h.$$parse(a):(d.url(h.absUrl(),b),g(a))}));h.$$replace=!1;return p}; newVal: 9; oldVal: 8"],["fn: function (){var a=d.url(),b=h.$$replace;p&&a==h.absUrl()||(p++,c.$evalAsync(function(){c.$broadcast(\"$locationChangeStart\",h.absUrl(),a).defaultPrevented?h.$$parse(a):(d.url(h.absUrl(),b),g(a))}));h.$$replace=!1;return p}; newVal: 10; oldVal: 9"],["fn: function (){var a=d.url(),b=h.$$replace;p&&a==h.absUrl()||(p++,c.$evalAsync(function(){c.$broadcast(\"$locationChangeStart\",h.absUrl(),a).defaultPrevented?h.$$parse(a):(d.url(h.absUrl(),b),g(a))}));h.$$replace=!1;return p}; newVal: 11; oldVal: 10"],["fn: function (){var a=d.url(),b=h.$$replace;p&&a==h.absUrl()||(p++,c.$evalAsync(function(){c.$broadcast(\"$locationChangeStart\",h.absUrl(),a).defaultPrevented?h.$$parse(a):(d.url(h.absUrl(),b),g(a))}));h.$$replace=!1;return p}; newVal: 12; oldVal: 11"]]

并且在删除 ng-include 行时,没关系。我认为这是 ng-include 导致 $locationChangeStart 被解雇,但为什么呢?

4

2 回答 2

2

确保要包含在 ng-include 中的模板的路径是正确的。如果不是,则会导致10 $digest() iterations reached错误。

如果路径不正确,服务器将提供 index.html(至少在您使用 html5 模式的情况下,服务器默认提供 index.html);index.html 将被包含并导致 ng-include 指令再次运行;结果是迭代包含的 index.html 的无限循环,该循环以错误消息终止10 $digest() iterations reached

于 2015-08-05T12:10:33.130 回答
0

你在这里陷入了无限循环

$scope.$watch("build.idx", ->
  $http.get("/build/" + $scope.build.idx + ".json").success((data) ->
    $scope.build = data
  )
)

您正在关注 build.idx,如果发生更改,请求信息将更改构建,这将一次又一次地触发请求,修改构建变量 andf 继续,这将通过不断变化和角度将快速反映在摘要周期中抛出此异常,因为它检测到可能存在无限循环

于 2014-06-12T13:05:42.270 回答