使用mouseEvents时angularjs window.alert()会导致错误

时间:2014-09-07 15:24:46

标签: javascript angularjs

以下是代码的链接:

http://plnkr.co/edit/usrmiNkj5YJY5SlV8ETw?p=preview

打开你的javascript控制台并点击"打个招呼"。它将触发$ apply已经在进行中的错误。

但是当你删除这段代码时:

ng-controller="mouseEvents" ng-mousedown="onMouseDown()" ng-mouseup="onMouseUp()" ng-mousemove="onMouseMove()"

并在点击&#34后保存;然后打开"错误消失了。

我该如何解决这个问题?

我需要mouseEvents来设置标记,如果鼠标是关闭的,或者是否适用于多个不同的控制器。我不能简单地在我的代码中删除它。

修改

较新的角度版解决了我的问题,没有$ timeout v1.3.10或更高版本

1 个答案:

答案 0 :(得分:6)

使用$ timeout让角度完成脏检查,然后显示警报。

app.controller("demoController",function($scope,$window, $timeout){
  $scope.save = function(){
    $timeout(function(){
       window.alert("hi!");
    });

  };
}); 

Plunkr:http://plnkr.co/edit/Kxbey5Rc43xsB9v5ugZ5?p=preview