2013-04-28 25 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

相關問題