我认为一种方法是使用服务来存储活动控制器的名称,甚至是要显示的菜单.
每次视图更改时,控制器都将执行,因此您可以运行一个功能来更新服务.
每次视图更改时,控制器都将执行,因此您可以运行一个功能来更新服务.
Here is a fiddle具有类似的情况,我使用的菜单服务为每个视图存储不同的菜单,该服务有一个setMenu()和getMenu(),每次执行一个控制器时它会通知服务哪个菜单被激活,每当我调用getMenu()它将返回活动菜单.
/* Services */ app.factory('Menu',function () { var activeMenu; var menu = { home: '<button>A</button><button>B</button>',list: '<button>C</button><button>D</button>',settings: '<button>E</button><button>F</button>',} function setMenu(name) { activeMenu = name; } function getActiveMenu() { return menu[activeMenu]; } return { setMenu: setMenu,getMenu : getActiveMenu } }); /* Controllers */ function HomeCtrl($scope,Menu) { Menu.setMenu('home'); $scope.menu = Menu.getMenu(); } function ListCtrl($scope,Menu) { Menu.setMenu('list'); $scope.menu = Menu.getMenu(); } function SettingsCtrl($scope,Menu) { Menu.setMenu('settings'); $scope.menu = Menu.getMenu(); }