У меня есть веб-приложение AngularJS, которое я пытаюсь оптимизировать. Моя страница указателя выглядит так:
<html lang="en" ng-app="myApp">
<head>
...
</head>
<body ng-cloak>
<!-- hellobar -->
<div ng-switch="pageService.isShowHelloBar">
<div ng-switch-when="true">
<div id="hellobar" hellobar></div>
<div ng-include src="'partials/test1.html'"></div>
</div>
<div ng-switch-when="false">
<div ng-include src="'partials/test2.html'"></div>
</div>
</div>
<!-- /hellobar -->
<!-- Templates with views will be inserted here -->
<div class="wrapper" ng-view></div>
...
</body>
</html>
В контроллере я установил pageService.isShowHelloBar="false";
В devtools я вижу, что он загружает ресурс hellobar.html и test2, который вызывается внутри директивы hellobar. Test2 в порядке, но hellobar нет. Я хотел бы избежать загрузки этого ресурса, и я подумал, что мог бы сделать это с помощью ng-switch вместо ng-show.
Если я просто заменю вызов в директиве <div ng-include src="'partials/hellobar.html'"></div>
, то hellobar.html больше не загружается. Итак, я предполагаю, что, хотя условие в ng-switch ложно, в случае, если Angular находит директиву, она анализируется.