1

我想显示/隐藏一个元素ng-if

例如,如果 body 有特定的类,我想显示一个元素

我尝试了以下方法,但没有成功 - 这甚至是有效的表达方式吗?

<div ng-if="document.querySelector('body').className.indexOf('bodyHasThisClass') >= 0"></div

任何建议都非常感谢。这是一个简单的例子:http ://plnkr.co/edit/kzXXg0sne8nyQZuufao7?p=preview


来自 AngularJS 文档:https ://docs.angularjs.org/guide/expression

Angular 表达式无法访问诸如 window、document 或 location 之类的全局变量。这种限制是故意的。它可以防止意外访问全局状态——这是微妙错误的常见来源。

4

1 回答 1

3

如何在指令中添加控制器

app.directive('wrapperDirective', function() {
return {
    restrict: 'A',
    templateUrl: 'wrapper-directive.html',
    replace: true,
    transclude: true,
    controller: function($scope){
      $scope.a = (document.querySelector('body').className.indexOf('bodyHasThisClass')>= 0)? true : false;
      $scope.b = (document.querySelector('body').className.indexOf('noSuchClass')===-1)? true:false;

    }
};
});

在模板中:

<div ng-if="a==true">
    visible if body has class bodyHasThisClass
</div>
<div ng-if="b==false">
    this should be hidden
</div>
于 2014-10-01T09:33:05.937 回答