我有这个代码
.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>
当显示控制器div
的第一个child1Controller
时,控制器child2Controller
也会运行,这是正常的吗?如果通过ng-show="false"
隐藏控制器,如何阻止控制器运行?当第一个parentController
可见时,我只需要运行child1Controller
和div
个控制器。与第二个div可见时相同,parentController
和child1Controller
控制器应该只运行一个。
答案 0 :(得分:2)
如果我没弄错,使用ng-if
而不是ng-show
可以解决您的问题。区别在于ng-if
在评估为false时不会将元素呈现给DOM。