【发布时间】:2015-07-18 08:10:29
【问题描述】:
我似乎无法通过以下代码让我的导航栏开始折叠。我正在使用 Angular-ui-bootstrap:
navbar.directive.html:
<button type="button" ng-click="isCollapsed = !isCollapsed">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div collapse="isCollapsed">
<ul class="nav navbar-nav">
<li>Test</li>
<li>Testing...</li>
</ul>
</div>
navbar.controller.js:
angular.module('gameApp')
.controller('NavbarController', NavbarController);
NavbarController.$inject = ['playersService'];
function NavbarController(playersService) {
var vm = this;
vm.isCollapsed = true;
var getCurrentPlayer = function() {
playersService.getCurrentPlayer().$promise.then(function(data) {
vm.player = data.player;
});
};
var init = function() {
getCurrentPlayer();
};
init();
}
当页面最小化到响应式导航栏切换出现的点时,菜单已经显示。即使我将其更改为vm.isCollapsed = false;,菜单仍然以打开状态开始。
【问题讨论】:
-
宾果游戏,谢谢!我的指令使用
controllerAs: 'navbar',但我的HTML 在isCollapsed前面缺少navbar。是时候让它过夜了,这是一个愚蠢的错误哈哈。 -
我没有注入这样的服务,但我通常将
$rootScope设置为我的服务的依赖项,修改它,然后(如果是隔离范围)在控制器中设置$scope.x = $rootScope.x。我也没有看到使用this的控制器,你的意思是注入$scope并设置$scope.vm.isCollapsed并访问collapse="vm.isCollapsed"? -
@Plato 不,当使用
controllerAs别名时,您在控制器中使用this...然后使用该别名作为视图中所有变量的前缀
标签: javascript html css angularjs angular-ui-bootstrap