8

来自 angularjs 控制器的 DOM 更改不是一个好习惯。在我的应用程序中,单击链接后,我正在更改 ngView 中的 html 元素的类。预期的行为是,我有三个 div,如果显示中间的一个,我正在改变。我正在从控制器执行此操作。我已经读过,应该在指令中进行 DOM 操作,但我的思想不够广泛,无法找到解决方案。拜托,如果你有建议,我会很高兴。

4

1 回答 1

9

使用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 的类将根据您范围内设置的布尔值而改变。

于 2013-04-17T21:59:32.160 回答