AngularJS:无论 ng-if 条件如何,指令模板都会加载

标签 angularjs

我正在使用指令将我的代码分成模板,并且我希望这些模板基于 if 条件加载。现在,当我查看网络流量时,Angular 将所有模板发送到客户端,而不管 ng-if条件满足。

<div class="container">
    <ul>
        <template1 ng-if="taskCategory == 'condition1'"></template1>
        <template2 ng-if="taskCategory == 'condition2'"></template2>
        <template3 ng-if="taskCategory == 'condition3'"></template3>
    </ul>
</div>

这是我的指令模板之一的示例:
/* Directive Template */
.directive('template1', [function() {
    return {
        restrict: 'E',
        templateUrl: 'view/templates/template1.tpl.html'
    };
}])

这是预期的行为吗?它在视觉上按预期工作。但我对 ng-if 印象深刻数据将根据条件延迟加载。或者我误解了如何使用ng-if ?

最佳答案

这绝对是预期的行为。 ng-if将根据条件有条件地从 DOM 中删除元素。元素在被移除之前仍然会被渲染(否则元素的副本会被添加回 DOM)。

该行为在 AngularJS: ngif 的第一段中说明。文档。

关于AngularJS:无论 ng-if 条件如何,指令模板都会加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19793227/

相关文章:

javascript - Angular.js + require.js + jQuery 插件自定义指令

javascript - 在运行时创建下拉菜单并随后绑定(bind)下拉列表值 - ngOptions 不起作用

AngularJS - ng-bind-html-unsafe 和 ng-model 问题

javascript - 在 uib-tab 中添加带有 active 和 ng-repeat 的选项卡

php - 将 angularjs webapp 连接到 REST API (PHP)

json - 如何使用 AngularJS 为双向绑定(bind)制作格式过滤器

javascript - $compileProvider.debugInfoEnabled 设置为 false 如何提高 angularjs 1.3 的性能?

javascript - 当满足循环内的条件时,如何仅显示特定控制台

javascript - 从 JavaScript 正确返回 html 中的特殊字符

angularjs - 无法获取angularjs中的textarea值