我正在用角度构建一个相当简单的演示,该应用程序具有相当于主屏幕和菜单的功能,类似于横向模式平板电脑应用程序,其中屏幕左侧有一个始终可见的菜单,而主右边的内容。
菜单和主内容页面都有自己的控制器。
我正在努力做到这一点,以便我可以展开菜单,并再次将其折叠回 20% 宽度,同时保持主页在视图中。
我的问题是,创建一个将菜单和主页作为项目保存的控制器,然后尝试将菜单和 main_page 控制器嵌套在该顶级控制器中似乎有点过头了。
据我现在所拥有的是
<body ng-controller="ViewCtrl"> <div id="menu" ng-controller="MenuCtrl" > <div ng-click="toggleMenu($event)" > 打开菜单 </div> // 我所有的菜单页面内容的 ng-repeats </div> <div id="main" ng-controller="MainCtrl"> //我所有的 ng-repeats 用于主页内容 </div> <正文>
在我的 ViewCtrl 中,我有
函数 ViewCtrl($scope) { $scope.toggleMenu = function($event){ 警报(“点击”) } }
问题是我认为我需要一种方法来检查菜单是否打开,如果是,则关闭它,否则,打开它。当菜单打开和关闭时,我必须在 MenuCtrl 和 MainCtrl 上设置类,并且我希望能够通过在 MainCtrl 中单击来关闭菜单。
用角度处理这个问题的最佳方法是什么。
有没有办法在父母身上设置一个班级,如果是这样,我可以这样做吗?或者在当前控制器中获取任何 div,即使 div 不是由角度模型创建的?或者我是否以某种方式将现有的 div 与控制器相关联?
大多数这类解决方案看起来都很混乱。