簡體   English   中英

Angular $ scope.Watch的問題

[英]Issue With Angular $scope.Watch

我在指令的鏈接函數中有一個scope.watch,如下所示

scope.$watch(function () {
return scope.chartConfig;
}, function (value) {
console.log(value);
}, true);

解決以下錯誤

angular.js:12221 TypeError: Illegal invocation
    at isArrayLike (angular.js:278)
    at forEach (angular.js:332)
    at copy (angular.js:913)
    at copy (angular.js:879)
    at putValue (angular.js:944)
    at copy (angular.js:926)
    at copy (angular.js:879)
    at putValue (angular.js:944)
    at copy (angular.js:926)
    at copy (angular.js:879)(anonymous function) @ angular.js:12221(anonymous function) @ angular.js:9055Scope.$digest @ angular.js:15574Scope.$apply @ angular.js:15824(anonymous function) @ angular.js:17580completeOutstandingRequest @ angular.js:5370(anonymous function) @ angular.js:5642
angular.js:12221 Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: []
http://errors.angularjs.org/1.4.0/$rootScope/infdig?p0=10&p1=%5B%5D
    at angular.js:68
    at Scope.$digest (angular.js:15594)
    at Scope.$apply (angular.js:15824)
    at angular.js:17580
    at completeOutstandingRequest (angular.js:5370)
    at angular.js:5642(anonymous function) @ angular.js:12221(anonymous function) @ angular.js:9055Scope.$apply @ angular.js:15826(anonymous function) @ angular.js:17580completeOutstandingRequest @ angular.js:5370(anonymous function) @ angular.js:5642
angular.js:68 Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: []
http://errors.angularjs.org/1.4.0/$rootScope/infdig?p0=10&p1=%5B%5D

請找到相同的插件鏈接

這里的主要問題是錯誤TypeError: Illegal invocation

您正在觀察的對象包含DOM元素, angular.copy無法處理。

例如, chartConfig.data.datasets[0].controller.chart.chart.canvas是對實際畫布的引用。

此外,深入觀察如此大的物體不利於性能。

僅在您真正需要監視的數據上添加監視程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM