2013-04-28 12 views
0

我想在AngularJS完成后执行一些代码,以在事件发生后更改HTML。我试着做到以下几点:AngularJS:在他的工作后执行代码

angular.module('ngC', [], function($routeProvider, $locationProvider) 
{ 
    $locationProvider.html5Mode(true); 
}) 
.directive("carousel", function() { 
    return function (scope, element, attrs) { 
     scope.$watch("imgs", function (value) 
     { 
      // Here my code 
     }); 
    }; 
}); 

的问题是,我的代码执行前AngularJS更换{{}}代码,但我想以后执行。

+0

你不想做类似范围$腕表(attrs.imgs,...)来代替。? – Blackhole 2013-04-28 16:55:21

回答

0

只需比较newValue是否与$ watch listening函数中的oldValue不同,这将指示是否发生了某些变化。

scope.$watch("imgs", function (newValue, oldValue) 
{ 
    if(newValue !== oldValue) {   
     // Here my code 
    } 
}); 

编辑:从文档

后一位守望与范围登记,听者FN异步调用(通过$ evalAsync)来初始化观察者。在极少数情况下,这是不可取的,因为当watchExpression的结果没有改变时调用监听器。要在侦听器fn中检测到这种情况,可以比较newVal和oldVal。如果这两个值相同(===),则由于初始化而调用侦听器。

+0

事实上,我想运行一个JQuery命令(JQuery Raty),所以我需要作为最终的“HTML”。 – GlinesMome 2013-05-02 21:13:53