从angularjs控制器更改DOM不是一个好做法。在我的应用程序中,点击链接后,我在ngView内改变html元素的类。预期的行为是,我有三个div,如果中间的一个显示或不显示,我正在改变。我是从控制器上做的。我读过,做DOM操作应该在指令中完成,但我的思想不够广泛,无法找到解决方案。如果你有什么建议,我将很高兴。
使用ng-class
例句:http://jsfiddle.net/rd13/eTTZj/75/
app = angular.module('myApp', []);
app.directive("click", function () {
return function(scope, element, attrs) {
element.bind("click", function() {
scope.boolChangeClass = !scope.boolChangeClass;
scope.$apply();
});
};
});
一些HTML:
<div id="page">
<div>One</div>
<div ng-class="{'my-class':boolChangeClass}">Two</div>
<div>Three</div>
<button click>Click me</button>
</div>
当您单击按钮时,中心div的类将根据在您的作用域内设置的boolen值而更改。