2016-06-22 3 views
1

왼쪽 메뉴를 사용하여 표시/숨기기 메뉴 막대가있는 각도 응용 프로그램이 있습니다. 왼쪽 메뉴에서 표시/숨기기 작업은 "데이터 조치"입니다. 나는 스마트 관리자를 사용하고하고 코드는

데이터-조치가 해고
<span class="minifyme" data-action="minifyMenu"> <i class="fa fa-arrow-circle-left hit"></i> </span> 

이하, 신체 부분 클래스를 변경하거나 새로운 클래스를 appeded됩니다.

내 요구 사항은 클래스 변경에 관한 작업입니다. 몸에 $ 수업 시간을 지키라는 지시가 있습니다.

지시문 코드는 페이지로드시 반드시 호출되지만 클래스가 변경 될 때 (즉 데이터 조치가 수행 될 때) 지시되지는 않습니다.

(function() { 
var app = angular.module("myApp"); 

var myDirective = [function() { 
    return { 
     restrict: "A", 
     link: function (scope, element, attrs) { 

      initialize(); 

      scope.$watch(function() { 
      return element.attr('class'); 
     }, function (newValue) { 
      if (element.hasClass('test')) { 
       console.log('has class.'); 
      } else { 
       console.log('classremoved.'); 
      } 
     }); 

      function initialize() { 

      }; 
     } 
    }; 
}]; 

app.directive('myDirective', myDirective); 

}()); 

이 문제를 어떻게 해결할 수 있습니까?

+0

전체 코드를 게시하여 자세한 답변을 드릴 수 있습니까 –

답변

1

데이터 조치가 각도 컨텍스트가 아니므로 $ apply() 메소드에서 수행해야합니다.

+0

$ apply() 어디에서? – Immortal

+0

자세한 내용을 보려면 전체 코드 게시 –

+0

완료, 질문을 편집했습니다. – Immortal