Angular ng-if不重新编译指令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular ng-if不重新编译指令相关的知识,希望对你有一定的参考价值。
据我所知,ng-if通过编译状态重新创建指令。但是如果我在指令代码中有if / else条件影响到编译的html,
如何在ng-if的表达式改变后重新编译指令?因为在刷新页面后正在进行编译。如果我刷新一个页面并获得一个编译状态,之后(没有刷新页面)更改记录标志,那么在ng-if表达式中,编译状态必须是其他状态,但事实并非如此。
例如:
<directive-one ng-if="logged"></directive-one>
我有2个这个指令的编译状态变体:有购物车项目而没有(空表)。
如果我刷新页面并被记录 - 一切都很好。如果我注销 - 指令销毁,如果我再次登录 - 指令将再次使用已记录的编译状态重新创建。
但是,如果我刷新页面并被记录 - 每次我登录或注销时编译状态将是“没有购物车项目”。因为刷新页面时的编译状态是“没有购物车项目”...
答案
有同样的问题。
将指令从元素移动到属性修复此问题。
<directive-one ng-if="logged"></directive-one>
重构:
<div data-directive-one ng-if="logged"></div>
(不要忘记将指令格式E中的要求更改为A)
指令元素的优先级应该在那里正常工作。
以上是关于Angular ng-if不重新编译指令的主要内容,如果未能解决你的问题,请参考以下文章