【问题标题】:Angular JS prevent controller from running on hidden elementAngular JS 阻止控制器在隐藏元素上运行
【发布时间】:2016-01-15 20:04:39
【问题描述】:

我有这个代码

.state('fooState', {
    url: '/foo',
    templateUrl: 'path/to/bar.html',
    controller:'parentController'
})

// THIS IS THE bar.html
<div class="sample">
    <div ng-show="bazinga" ng-controller="child1Controller">
        <!-- cool stuff -->
    </div>
    <div ng-show="!bazinga" ng-controller="child2Controller">
        <!-- cool stuff -->
    </div>
</div>

当显示带有控制器child1Controller 的第一个div 时,控制器child2Controller 也会运行是否正常?如果控制器通过ng-show="false" 隐藏,如何防止控制器运行?我只需要parentControllerchild1Controller 控制器在第一个div 可见时运行。与第二个 div 可见时相同,parentControllerchild1Controller 控制器应该只有一个正在运行。

【问题讨论】:

  • 您也可以使用嵌套状态/视图来执行此操作...
  • 所以会有另一个&lt;div ui-view&gt; ?

标签: javascript angularjs angular-controller


【解决方案1】:

如果我没记错的话,使用 ng-if 而不是 ng-show 应该可以解决您的问题。不同之处在于 ng-if 在计算结果为 false 时不会将元素呈现给 DOM。

【讨论】:

  • 您好,谢谢,那么我该怎么做呢? ng-if 的值是多少?
  • 它的使用方式与您使用 ng-show 的方式相同,因此只需将它们换掉,值保持不变
猜你喜欢
  • 2014-04-11
  • 2020-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-22
  • 1970-01-01
  • 2012-12-08
相关资源
最近更新 更多