【问题标题】:angular show/hide div outside ng view角度显示/隐藏 ng 视图外的 div
【发布时间】:2017-05-05 23:07:43
【问题描述】:

试图在 ng-view 之外隐藏/显示 div 但无法访问它。

主控制器

var vm = this;
vm.showMyDiv = false;

html

<body ng-app="app" ng-controller="ManinCtrl as main">
    <div ng-show="vm.showMyDiv">
      my test div
    </div>
    <div class="ng-view"></div>
<body>

ng-view 控制器

var vm = this;
vm.hideLoader = true;

如何访问它,我尝试使用 $scope 但它不起作用

【问题讨论】:

  • 你的第一个和第二个控制器是父母和孩子?

标签: javascript html angularjs


【解决方案1】:

您要像 ng-controller="ManinCtrl as main" 这样声明控制器,因此您需要在属性前加上 main 而不是 vm

<div ng-show="main.showMyDiv">

工作示例:

angular.module('app', []).controller('mainCtrl', function() {
  var main = this;
  main.showMe = false;
  main.toggleShow = function() {
    main.showMe = !main.showMe;
  };
}).controller('ctrl', function() {
  var vm = this;
  vm.exampleText = "I'm inner text in the controller :)";
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="mainCtrl as main">
  <div ng-show="main.showMe">HELLO!!</div>
  
  <hr>
  
  <div ng-controller="ctrl as vm">
    <div ng-bind="vm.exampleText"></div>
    <button ng-click="main.toggleShow()">Click Here</button>
  </div>
</div>

【讨论】:

  • 好的,但是如何从处理视图的嵌套控制器中更改 div 的可见性?
  • @user1751287 我添加了一个应该如何完成的工作示例。希望它能帮助你更好地理解我的回答
  • 我不知道为什么但不能让它工作,我看到你的例子有效。我没有看到错误,但没有任何反应
  • 我的嵌套控制器是在路由中定义的,控制器:'nestedCtrl',controllerAs:'vm'
  • 好的,但是既然你说你有一个父控制器 - 所以你不需要调用vm.&lt;property&gt;而是主控制器
猜你喜欢
  • 1970-01-01
  • 2015-07-03
  • 2019-08-17
  • 1970-01-01
  • 2017-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多