次のコードを検討してください。
<div ng-show="false">
<div ng-controller="expensive"></div>
</div>
<script>
var expensive = function() {
console.log('expensive');
};
</script>
高価なコントローラーは呼び出されないようにしたいと思います。これは高価であり (実際には、大量の I/O をトリガーする)、有用な効果がないからです。show 式 (またはそれに相当するもの) が true の場合にのみ呼び出されるようにします。
ちなみに、次の作品は(そして私の要点を示しています)、しかしそれはひどく醜いです:
<button ng-click="visib=!visib">display</button>
<div ng-repeat="v in (visib && [1] || [])">
<div ng-controller="expensive"></div>
</div>
<script>
var expensive = function() {
console.log('expensive');
};
</script>