Angular js - ng-class =""条件简单,没有工作

时间:2014-02-01 09:16:35

标签: javascript arrays angularjs view ng-class

嗨,我正在尝试通过ng-class向元素添加一个类。正如您所看到的,代码非常简单,但它不会添加类:

app.run(function($rootScope, $location,$http,ngDialog,array_helper){
    var update =  function() {
        /*CONFIG PARAMS*/
        $rootScope.config = {};
        $rootScope.config.app_routes = [
            "/",
            "/channels",
            "/channels/create",
            "/users",
            "/auth/login",
            "/auth/signup"
        ];
        console.log($rootScope.config.app_url);
        console.log($rootScope.config.app_routes.indexOf($rootScope.config.app_url));
    };
    $rootScope.$on('$routeChangeStart', function() { 
        update(); 
    });
});

然后在视图中,我这样做:

<div ng-view ng-animate class="" ng-class="{'slide': config.app_routes.indexOf(config.app_url) == -1}"></div>

但似乎它永远不会起作用,因为它从未添加类slide。同时console.log效果很好,只有在正确时才返回-1:O

1 个答案:

答案 0 :(得分:7)

将您的逻辑移动到范围变量中:

<div ng-view ng-animate ng-class="{ 'slide': someVar }"></div>

并在$scope.someVar = true时设置config.app_routes.indexOf(config.app_url) == -1。如何执行此操作取决于config.app_routes的更新方式和时间。