最近迁移到 1.2.0-rc1 并且非常满意。尤其是ngIf
与ngShow
. 除了布尔值变化时有一些闪烁。有关示例,请参见下面的 plunkr:
http ://plnkr.co/edit/iYMm0IHZkrRamlaEs9yD?p=preview
在 Chrome (v28) 上,您会看到前 2 个实现会闪烁,而其他 2 个则不会。在 Firefox 上,闪烁很少发生。
这正常吗?有没有办法避免这种情况?我应该回去使用ngShow
吗?
编辑:
正如 sza 所说,ngIf 并ngSwitch
修改 DOM,而ngShow
使用 css 规则来显示/隐藏元素。在 Angular 1.0.7 中,ngSwitch
已经存在并且已经在修改 DOM,并且非常棒,因为我们大量使用它来代替ngShow
未显示的东西的昂贵渲染。现在,如果您查看http://plnkr.co/edit/pIpEYZ5K8xvfd9dhAC74?p=preview,您会发现 ngSwitch 从 1.0.7 开始没有闪烁。
我期望的答案是“这是正常行为,您正在使用ngSwitch
并且ngIf
不应该使用它们,只有静态内容应该与ngSwitch
and一起显示ngIf
”或“这是一个渲染错误,忍受它直到它是固定的”。当然,解决方法也很好(@timp,我已经看到了您的答案,但恐怕我需要一个可行的示例)。