我编写了一个
HTML文件,其中包含一个侧边栏和一个映射到局部的主容器.现在,当基于配置路由加载部分时,我希望侧边栏从浏览器中隐藏.为此,我尝试在侧边栏div上使用ng-show.
当路线匹配时,是否将div与控制器隐藏起来是正确的方法?如果是这样,我如何将ng-show绑定到控制器?
解决方法
我通常做的是这样的结构:
<nav ng-show="sidebar.show" id="sidebar" ng-controller="sidebarController"> [...] </nav> <div ng-view> </div>
所以,侧边栏有自己的控制器(它有自己的范围);然后在partial的控制器内你可以考虑改变sidebar.show的值.
例如:
// sidebarController function sidebarController($rootScope,$scope){ $rootScope.sidebar = { show : true; }; $scope.sidebar = $rootScope.sidebar; } // partialController app.controller("partialController",function($rootScope,$scope) { $rootScope.sidebar.show = false; });
但这只是一种方法.
PS:ng-show只隐藏元素,但它仍然在DOM中;我通常更喜欢ng-if,因为它不会将元素添加到DOM中.