0

ngIncludeの例は、ngInclude 要素の src 属性を更新する方法を示しています。

同様に、テンプレート パスを変数に割り当てようとしていますが、ajax リクエストのコールバック内にあります。課題の後、私はやってい$rootScope.$apply($scope.setMainTemplatePath)ます。
コールバックを含む関数にも $rootScope を注入しています。

しかし、次のエラーが発生します。

Error: 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [["fn: function (){var a=d.url();if(!n||a!=f.absUrl())n++,c.$evalAsync(function(){c.$broadcast(\"$locationChangeStart\",f.absUrl(),a).defaultPrevented?f.$$parse(a):(d.url(f.absUrl(),f.$$replace),f.$$replace=!1,h(a))});return n}; newVal: 30; oldVal: 29"],["fn: function (){var a=d.url();if(!n||a!=f.absUrl())n++,c.$evalAsync(function(){c.$broadcast(\"$locationChangeStart\",f.absUrl(),a).defaultPrevented?f.$$parse(a):(d.url(f.absUrl(),f.$$replace),f.$$replace=!1,h(a))});return n}; newVal: 31; oldVal: 30"],["fn: function (){var a=d.url();if(!n||a!=f.absUrl())n++,c.$evalAsync(function(){c.$broadcast(\"$locationChangeStart\",f.absUrl(),a).defaultPrevented?f.$$parse(a):(d.url(f.absUrl(),f.$$replace),f.$$replace=!1,h(a))});return n}; newVal: 32; oldVal: 31"],["fn: function (){var a=d.url();if(!n||a!=f.absUrl())n++,c.$evalAsync(function(){c.$broadcast(\"$locationChangeStart\",f.absUrl(),a).defaultPrevented?f.$$parse(a):(d.url(f.absUrl(),f.$$replace),f.$$replace=!1,h(a))});return n}; newVal: 33; oldVal: 32"],["fn: function (){var a=d.url();if(!n||a!=f.absUrl())n++,c.$evalAsync(function(){c.$broadcast(\"$locationChangeStart\",f.absUrl(),a).defaultPrevented?f.$$parse(a):(d.url(f.absUrl(),f.$$replace),f.$$replace=!1,h(a))});return n}; newVal: 34; oldVal: 33"]]
        at Error (unknown source)
        at Object.$digest (http://localhost:3000/assets/angular-1.0.1.min.js?body=1:85:413)
        at Object.$apply (http://localhost:3000/assets/angular-1.0.1.min.js?body=1:87:58)
        at HTMLDivElement.<anonymous> (http://localhost:3000/assets/web/angularjs/controllers.js?body=1:40:27)
        at HTMLDivElement.<anonymous> (http://localhost:3000/assets/jquery.js?body=1:3257:9)
        at HTMLDivElement.<anonymous> (http://localhost:3000/assets/jquery.js?body=1:2876:28)
        at Object.trigger (http://localhost:3000/assets/jquery.js?body=1:3145:12)
        at HTMLDivElement.<anonymous> (http://localhost:3000/assets/jquery.js?body=1:3782:17)
        at Function.each (http://localhost:3000/assets/jquery.js?body=1:659:20)
        at [object Object].each (http://localhost:3000/assets/jquery.js?body=1:272:17) 

私が何かを見逃したり、何か間違ったことをしたりした場合は、指摘してください。ありがとう。

4

1 に答える 1

0

angularの制御外にあるものを扱っていない限り、scope.$applyを呼び出すべきではありません。より多くのコードが役立ちます。

于 2012-07-12T22:04:12.667 に答える