2014-03-12 41 views
0

的指令處理事件我有一個CurrentUser模型類,當用戶未通過身份驗證時,我想引發'NOT_AUTHENTICATED'事件。來自型號

在某些頁面上,我想使用一個指令來處理這個事件並顯示一個模態。

將從模型發出的事件將氣泡上升到指令鏈接作用域?

+0

請使用實現具有與範圍無關的應用程序信號時,在你的指導和用戶類,而不是範圍事件注入的服務。 – lib3d

+0

服務如何監聽事件? – fansonly

回答

1

角度事件由範圍觸發和接收。所以,你需要一個$ scope對象來廣播一個事件,並且你需要一個scope對象來監聽一個事件。如果「模型」你的意思是一個角度的服務,那麼,你可以注入$ rootScope和$從那裏像這樣的廣播事件......

myApp.factory('theModel', function($rootScope) { 
    $rootScope.$broadcast('NOT_AUTHENTICATED'); 
}); 

本次活動將泡沫倒範圍鏈,並且可以通過聞你的指令在鏈接功能範圍..

myApp.directive('theDirective', function() { 
    return { 
     ... 
     link:function(scope, element, attrs) { 
      scope.$on('NOT_AUTHENTICATED', function (event) { 
       ... 
      } 

     } 

    }; 
});