在添加课程时做点什么

时间:2013-08-04 19:28:28

标签: javascript angularjs

以下情景:

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

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

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

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

    }
]);

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

2 个答案:

答案 0 :(得分:2)

我认为这是一个悖论。

如果你想通过一些非angularjs逻辑改变css类,angularjs将不会检测到更改,因为它是范围之外。

如果你想让angularjs更改css类,你将能够知道css类何时被更改,因为必须在里面更改angularjs的范围。

答案 1 :(得分: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();
    });

希望这有帮助!