Ign*_*nas 18 javascript angularjs angularjs-digest
编辑:似乎这可能与Chrome v43有关,我降级到v42,一切正常.
编辑:我已经在Angular的Github回购中提交了一个问题.
似乎错误在angular.js源中被return logFn.apply(console, args);线条抛出
12221.
关于现在该做什么的任何提示?
我正在尝试将我的应用程序从AngularJS v1.2迁移到v1.3或v1.4,但我正在TypeError: Illegal invocation使用Chrome(尝试过win,osx和ubuntu).
堆栈跟踪并没有真正帮助:
TypeError: Illegal invocation
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at Scope.$get.Scope.$digest (angular.js:15550)
at Scope.$get.Scope.$apply (angular.js:15824)
at done (angular.js:10263)
at completeRequest (angular.js:10435)
at XMLHttpRequest.requestLoaded (angular.js:10376)
Run Code Online (Sandbox Code Playgroud)
所以这似乎与AJAX请求有关,但我也得到:
TypeError: Illegal invocation
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at Scope.$get.Scope.$digest (angular.js:15550)
at Scope.$get.Scope.$apply (angular.js:15824)
at tick (angular.js:10983)
Run Code Online (Sandbox Code Playgroud)
我正在使用$interval更新模型类(这是一个工厂并通过设置$scope.client此类来反映在视图中):
var runTimer = function () {
self.timeOnline = time(self.timeSoFar);
self.timeSoFar = Date.now() / 1000 - self.alarmTriggeredTime;
};
$interval(runTimer, 1000);
Run Code Online (Sandbox Code Playgroud)
我认为有一个问题$digest/$apply.我花了好几个小时调试这个,但仍然没有找到发生了什么的线索.
任何进一步调试的指针都非常感谢.
小智 2
在angular-issue、chromium-bug、webkit-bug和(我什至不知道这是什么)something-Webkit-issue之间,似乎每个人(好吧,大多数是每个人)都在举手投足。也许我这样说是有判断力的/完全错误的。
不管怎样,我无法window.history.back在不引起错误的情况下记录案例Illegal Invocation,但我能够使用console.log.call(window, 'x')以下“片段:”
(function() { console.log = console.log.bind(console); }());
Run Code Online (Sandbox Code Playgroud)
(直接从最后一个链接中获取,谢谢布莱恩!)
只需将其放在 HTML 文档的顶部/任何您想要的位置即可(我猜)。
我非常好奇如果你运行那个@Ignas 会发生什么。我似乎无法复制您通过工厂绑定$scope并运行$interval您的工厂所提出的问题。
我很想看看它是否具有任何效果(尽管我认为不是功能性的,而是装饰性的)。
边注; 我是新手,我刚刚被同行告知 console.log.call(window) 确实会抛出非法调用错误,所以这是一个非问题的问题。仍然好奇这是否会对logFnAngular 内部产生影响。
| 归档时间: |
|
| 查看次数: |
4409 次 |
| 最近记录: |