javascript - Angular UI 导航栏崩溃不起作用

标签 javascript html css angularjs angular-ui-bootstrap

我似乎无法让我的导航栏以折叠的方式启动,并使用以下代码。我正在使用 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>

导航栏.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; 菜单仍然以打开状态开始。

最佳答案

Controller 是使用 this 构建的,以允许 controllerAs 语法,但 html 中的变量设置为使用 $scope

如果指令没有独立作用域,则需要在某处声明 Controller 的别名,并在所有变量前加上别名。

--或者--

需要更改 Controller 以将所有变量绑定(bind)到 $scope 而不是 this

不确定指令是如何配置的或 Controller 在 View 中的何处声明

关于javascript - Angular UI 导航栏崩溃不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31486397/

相关文章:

javascript - 如果内容超过使用 JavaScript 的 html 表格的固定宽度,则将文本拆分到下一行

jquery - 仅针对特定容器宽度的图像动态宽度

jquery - 将下拉菜单拉到左上角,并使用 css 在移动设备上使其全宽

javascript - IE 10 不设置/发送 cookie(从 js)到服务器

html - 垂直居中标题文本

javascript - 使用 Javascript/jQuery 基于当前页面和列表的动态面包屑 ()

javascript - 隐藏了错误的盒子

javascript - 如何在玩游戏时阻止我的网站使用箭头键上下滚动?

javascript - 在没有 jQuery 的情况下从 javascript 中的函数返回粗体/彩色搜索字符串

javascript - 如何使用鼠标悬停来正确显示列表?