1

我有一个角度应用程序,使用左侧菜单,带有显示/隐藏菜单栏,在左侧菜单上显示/隐藏的操作是“数据操作”。我正在使用 Smart Admin,代码如下

<span class="minifyme" data-action="minifyMenu"> <i class="fa fa-arrow-circle-left hit"></i> </span>

当触发数据操作时,主体部分类会更改或添加一个新类。

我的要求是对班级的变化做一些事情。我在身体上有一个指令来 $watch 上课。

指令代码肯定会在页面加载时被调用,但在类更改时不会调用,即执行数据操作时。

(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);

}());

我该如何解决这个问题。

4

1 回答 1

1

您需要在 $apply() 方法中执行此操作,因为数据操作超出了角度上下文。

于 2016-06-22T03:25:44.607 回答