2016-06-22 21 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

data-actionは角度の範囲外であるため、$ apply()メソッドで行う必要があります。

+0

$ apply()どこですか? – Immortal

+0

詳細な回答を得るためにあなたの完全なコードを投稿してください –

+0

完了、私は質問を編集しました。 – Immortal

関連する問題