Angular JS阻止控制器在隐藏元素上运行

时间:2016-01-15 20:04:40

标签: javascript angularjs angular-controller

我有这个代码

.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可见时,我只需要运行child1Controllerdiv个控制器。与第二个div可见时相同,parentControllerchild1Controller控制器应该只运行一个。

1 个答案:

答案 0 :(得分:2)

如果我没弄错,使用ng-if而不是ng-show可以解决您的问题。区别在于ng-if在评估为false时不会将元素呈现给DOM。

相关问题