2016-06-22 52 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()方法中执行此操作,因为data-action超出了角度上下文。

+0

$ apply()在哪里? – Immortal

+0

发表您的完整代码给出详细的答案 –

+0

完成后,我编辑了这个问题。 – Immortal