如何从angular中的控制器js隐藏ng控制器之外的元素



我有这段代码,它显示ng控制器之外的内容。

HTML

<div class="btn-group companyName">
    <!-- buttons -->
</div>
<div class="col-lg-12 col-lg-md-12 col-sm-12" ng-controller="TopicsCtrl">
    <div class="faq-breadcrumbs">
        <!-- contents -->
    </div>
</div>

JS-

angular.module('sample').controller('TopicsCtrl', function ($scope) {
    //how to hide first div?
};

顶部的div位于站点的标题中,因此它显示在站点的所有页面中。只有当我在FAQ页面中时,才会显示第二个div。现在,每当我在FAQ页面中时,我不希望第一个div显示在标题上。如何做到这一点?有人能帮我吗?非常感谢。

实现这一点的方法是创建一个指令来操纵DOM,并在路由位于FAQ页面上时隐藏页面上的元素。为了做到这一点,你必须增加你的应用程序的范围,以包括标题。

如果你不能做到这一点,我建议你只使用javascript/jquery的方式,当位置在faq时隐藏companyNamediv。像这样的事情可能会奏效。

$(document).ready(function() {
    if(location.pathname == 'faq'){
        $('.companyName').css('display', 'none');
    }
}

此解决方案确实存在可能在文档完全加载之前显示信息的问题。

最新更新