2013-08-04 75 views
2

以下情形:做一些事情,當一個類添加得到

我需要調用一個函數,當庫我使用,被添加類的DOM元素。我正在使用angularjs。我不知道我該怎麼做,所以我希望你能幫助我。

<div class="block active"></div> 

嗯,這是我的DIV,每次活動類被添加或刪除我想需要調用一個js函數做出一些改變就在身邊。

ControllersModule.controller('BlockCtrl', [ 
    '$scope', '$location', 
    function ($scope, $location) { 

    } 
]); 

我希望你能幫助我,這是控制器應該如何處理這個。

+0

你的圖書館在操縱你的div時會拋出一個事件嗎?原則上,您可以將角色綁定到這些事件上。 – Florian

+0

以及我使用引導程序。當我點擊一個.dropdown切換,然後父列表項(李)gehts類打開 – Safari

+0

如果您使用twitter引導和角度可以使用http://angular-ui.github.io/bootstrap/。 –

回答

1

我在這裏的項目(https://bitbucket.org/asiemer/angularjs.mvc/wiki/Home)中做了類似的事情,其中​​我創建了一個「已驗證」指令,其中定義了一個觀察器。在觀察者中,我檢查已定義的類名。

事情是這樣的:

scope.$watch(modelId, function (newValue, oldValue, $scope) { 
     var classes = element[0].className; 
     if (classes.indexOf(' ng-invalid ') > 0 && classes.indexOf('ng-pristine') == -1) { 
      angular.element('#'+validationMessageId).css('display', 'inline'); 
     } 
     else 
     { 
      angular.element('#'+validationMessageId).css('display', 'none'); 
     } 
     scope.$apply(); 
    }); 

希望這有助於!

2

我認爲這是一個矛盾。

如果您希望通過某些非angularjs邏輯來更改css類,那麼angularjs將不會檢測到該更改,因爲它是範圍以外的範圍。

如果你想angularjs改變css類,你將能夠知道什麼時候css類改變了,因爲改變必須在裏面的角度範圍。

相關問題