【发布时间】:2017-10-26 21:49:21
【问题描述】:
我有一个隔离范围指令。在该指令的链接函数中,我正在编译一个 html 模板并将其附加到文档正文中。
const template = `<div ng-if="vm.open"></div>`;
body.append(template);
我有一个按钮可以在 ng-click 上切换 vm.open 标志。这可以很好地显示/隐藏我的 div。但是,当我按下后退按钮时,我的作用域销毁事件处理程序被调用并将 vm.open 设置为 false。但在我的 DOM 中 vm.open 仍然是 true。
这是因为 ng-if 创建了一个新范围,并且由于我的指令是“父”,因此它不会破坏 ng-if 的范围?我发现另一个 stackOverflow 线程使用 ng-show 修复了这个问题,它确实如此。但我想了解为什么它不适用于 ng-if。
【问题讨论】:
标签: javascript angularjs angular-ng-if