以下情景:
我需要调用一个函数,当我使用的库时,正在向DOM元素添加一个类。我正在使用angularjs。我不知道我怎么做,所以我希望你能帮助我。
<div class="block active"></div>
这是我的div,每次添加或删除活动类时,我都需要调用js函数来进行一些更改。
ControllersModule.controller('BlockCtrl', [
'$scope', '$location',
function ($scope, $location) {
}
]);
我希望你能帮助我,这是控制器应该处理的事情。
答案 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();
});
希望这有帮助!