2014-02-21 1 views
0

내 index.html을이 있습니다보기가 변경 될 때마다 AngularJS 지시문을 트리거하는 방법은 무엇입니까?

<div class="content"> 
     <div data-ng-include="'views/title.html'"></div> 
     <div data-ng-view=""></div> 
    </div> 

    <div data-ng-include="'views/chat.html'"></div> 

컨트롤러/경로 변경, html로이 데이터-NG-보기에 삽입 될 때마다. 이 chat.html에 사업부에 부착 된 클래스의 채팅 창을 '이 있음을 볼 때

그러나, 나는 자바 스크립트 기능 (callMyJSFunction)를 실행하는 각도 지침이 있습니다

angular.module('myApp').directive('chatWindow', function() { 
     return { 
      restrict: 'C', 
      link: function(scope, element, attrs) { 
       element.callMyJSFunction({ 
        hostname: 'www.domain.com', 
        data: 'other data' 
       }); 
      } 
     } 
    }); 

은 내가 보기가 바뀔 때마다이 Javascript 함수가 다시 호출됩니다. 어떻게해야합니까?

chat.html을 모든 HTML 파일로 옮기고 싶지는 않습니다. 20 가지 이상의 다른보기가 있습니다!

답변

2

ngView 지시문에서 방출되는 viewContentLoaded 이벤트를 사용할 수 있습니다. 당신의 지시에

, 당신이 할 수 있습니다 :

angular.module('myApp').directive('chatWindow', ['$rootScope', function($rootScope) { 
    return { 
     restrict: 'C', 
     link: function(scope, element, attrs) { 
      element.callMyJSFunction({ 
       hostname: 'www.domain.com', 
       data: 'other data' 
      }); 

      $rootScope.$on('$viewContentLoaded', function() { 
       element.callMyJSFunction(...); 
      }); 
     } 
    } 
}]); 
관련 문제