2

以下场景:

当我使用的库正在向 DOM 元素添加类时,我需要调用一个函数。我正在使用 angularjs。我不知道我该怎么做,所以我希望你能帮助我。

<div class="block active"></div>

好吧,这是我的 div,每次添加或删除活动类时,我都需要调用一个 js 函数来进行一些更改。

ControllersModule.controller('BlockCtrl', [
    '$scope', '$location',
    function ($scope, $location) {

    }
]);

我希望你能帮助我,这是控制器应该处理这个。

4

2 回答 2

2

我认为这是一个悖论。

如果您希望通过某些非 angularjs 逻辑更改 css 类,则 angularjs 不会检测到更改,因为它是在范围之外进行的。

如果您希望 angularjs 更改 css 类,您将能够知道 css 类何时更改,因为更改必须angularjs 的范围内进行。

于 2013-08-04T20:04:09.737 回答
1

我在我的项目( https://bitbucket.org/asiemer/angularjs.mvc/wiki/Home )中做了类似的事情,其中​​我创建了一个“已验证”指令,其中定义了一个观察者。在观察者中,我检查定义的类名。

像这样的东西:

scope.$watch(modelId, function (newValue, oldValue, $scope) {
        var classes = element[0].className;
        if (classes.indexOf(' ng-invalid ') > 0 && classes.indexOf('ng-pristine') == -1) {
            angular.element('#'+validationMessageId).css('display', 'inline');
        }
        else
        {
            angular.element('#'+validationMessageId).css('display', 'none');
        }
        scope.$apply();
    });

希望这可以帮助!

于 2013-08-06T01:51:16.747 回答