2015-04-17 65 views
0

我想在用戶更改頁面時刪除類,主要是因爲我想摺疊引導程序導航欄。爲此,我創建了一個將刪除指定類的指令。什麼是最好的方式來觸發我的$ routeChangeSuccess事件指令,而不需要聽取指令中的事件,因爲我希望保持它的靈活性。角度刪除位置變化類

app.directive('removeClass', function() { 
    return { 
     scope: {}, 
     restrict: 'A', 
     link: function(scope, element, attrs) { 
      //someway to trigger this method e.g. from an event listener outside the directive 
      scope.removeClass = function() { 
        element.removeClass(attrs.removeClass); 
      } 
     } 
    }; 
}); 

回答

0

你可以改變一個$rootScope變量,ng-class。根據頁面在控制器中設置該變量。

+0

問題是,我需要找到一種方法,在頁面發生變化並且指令已經運行之後取消設置變量,以便導航欄可以再次被摺疊。 –

+0

你必須改變主控制器和指令。你可以改變兩者。不知道爲什麼有問題。 – batmaniac7

+0

在我看來,每次事件$ routeChangeStart被觸發時,都有辦法從控制器觸發指令removeClass函數,而不是試圖在兩個範圍內管理和監視變量的狀態,這會更清晰一些。要做到這一點? –