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

How to trigger callbacks after angular js directives

本文关键字:之后 回调 指令 js angular      更新时间:2023-09-26

我是Angular JS的新手,我正试图弄清楚如何在指令完成后进行操作。

例如,有一个指令:ng mousemove。如果我想在鼠标移动时更改某些内容的颜色,请添加ng-mousemove="mouseMoveFunc()"并更改控制器中的相关css属性。但是把它改回来怎么样?(没有ng mousemoveStop指令)

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

在控制器中,您可以执行以下操作:

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);
     }
 }]);

演示