我有一个用户编辑器指令,显示用于编辑$ scope.User的UI . 当$ scope.User为null时,编辑器处于“创建”模式,这意味着一旦提交了数据,就会创建一个新用户 .
此外,该指令将进行一些布局计算 . 问题是,在显示编辑器之前,布局计算不正确 . 例如,在Firefox下,当一个元素不可见时,高度始终为0.换句话说,当编译和链接指令时,元素的布局是错误的 .
我的问题是如何强制指令在可见时刷新?
我尝试了以下方法:
-
更改$ scope.User该指令监视$ scope.User . 更改它可以使指令有机会刷新 . 但这不是一个好主意,在创建新用户时应该为null .
-
在$ scope中添加一个新的'visible'var,并观察它问题是指令的父元素(和父元素的父元素)也可以变得可见和不可见 . 有办法获得通知吗?
有什么好主意吗?
1 回答
将
ng-if
添加到指令的元素:并使用另一个事件触发其对DOM的添加:
Demo
这里,链接函数将在
ng-if
表达式为真的位置触发 .我想为这个答案做点什么.2805304_如果没有找到,请使用代码示例更新您的问题,如果可能的话,请更新Plunker以更好地展示您的目标 .