如何在angular js指令之后触发回调

时间:2013-12-14 21:30:11

标签: javascript angularjs

我是Angular JS的新手,我正试图弄清楚如何在指令完成后做事。

例如,有一个指令:ng-mousemove。如果我想在鼠标移动时改变颜色,添加ng-mousemove="mouseMoveFunc()"并更改控制器中的相关css属性。但是要改回来呢? (没有ng-mousemoveStop指令)

我已经遇到过这种情况,所以我想我错过了一些关于它应该如何工作的东西。

1 个答案:

答案 0 :(得分:0)

在控制器中你可以这样做:

HTML

<div ng-app="myApp">
    Move the mouse on blue box. If you stop to move or leave the box, the
    color comes back to original color.
    <div ng-controller="mycontroller" 
        style="height:200px" 
        ng-style="mystyle()" 
        ng-mousemove="mouseMoveFunc()">
    </div>
</div>

的Javascript

angular.module("myApp",[])
.controller("mycontroller",["$scope","$timeout",function($scope, $timeout){
     $scope.mystyle = function(){
         if(queue<1){
             return {"background":"blue"};
         }else{
             return {"background":"black"};
         }
     };
     var queue=0;
     $scope.mouseMoveFunc = function(){
         queue++;
         $timeout(function(){
             queue--;
         },100);
     }
 }]);

Demo