我有一个ng-include
内部ng-repeat
:
<div ng-repeat="tab in tabs" ng-show="tab.active">
<div ng-include="tab.url" class="no-padding no-margin"></div>
</div>
如果用户单击选项卡,我只希望将内容加载到 DOM 中,所以我在ng-if
周围使用ng-include
:
<div ng-repeat="tab in tabs" ng-show="tab.active">
<div ng-if="tab.loaded">
<div ng-include="tab.url" class="no-padding no-margin"></div>
</div>
</div>
这部分工作正常。但是,我有一个需要动态内容的选项卡,因此每次用户单击选项卡时,我都需要重新创建该控制器的范围。
根据我的理解,我还可以ng-if
用来删除/重新创建 DOM 元素。根据ng-if
文档:
ngIf 指令根据 {expression} 删除或重新创建 DOM 树的一部分
...
当使用 ngIf 删除一个元素时,它的作用域被破坏并在元素恢复时创建一个新作用域
我添加了loaded
将动态选项卡的属性设置为 false 的代码,这应该从 DOM 中删除它的内容。
然后我将其设置回 true,以便重新创建范围,但我无法再次创建范围。
我的方法是否正确,或者除此之外还有什么ng-if
可以用于我的目的。