AngularJS:如何强制刷新指令?

扎克

我有一个用户编辑器指令,该指令显示用于编辑$ scope.User的UI。当$ scope.User为null时,编辑器处于“创建”模式,这意味着一旦提交数据,便会创建一个新用户。

另外,该指令将进行一些布局计算。问题是,在显示编辑器之前,布局计算不正确。例如,在Firefox下,当元素不可见时,高度始终为0。换句话说,当编译和链接指令时,元素的布局错误。

我的问题是如何强制指令在可见时刷新?

我尝试了以下方法:

  1. 更改$ scope.User指令监视$ scope.User。对其进行更改可以使指令有机会刷新。但这不是一个好主意,在创建新用户时应为null。

  2. 在$ scope中添加一个新的“可见”变量,并对其进行观察问题是指令的父元素(和父元素的父元素)也可能变得可见和不可见。有没有办法得到通知?

有什么好主意吗?

马克·克莱恩

添加ng-if到指令的元素中:

<my-directive ng-if="UserCreated"></my-directive>

并通过另一个事件触发将其添加到DOM:

<button ng-click="UserCreated = !UserCreated">Toggle User</button>

演示版

此处,链接函数将在ng-if表达式为真的点处触发

我已经对您要为此答案做的事情做出了一些假设。如果与您要查找的内容不匹配,请使用代码示例更新您的问题,并在可能的情况下使用简化的Plunker来更好地证明您的要求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

angularjs:强制重新渲染/完全刷新指令模板

来自分类Dev

angularjs:强制重新渲染/完全刷新指令模板

来自分类Dev

如何在angularjs中刷新HTML画布指令

来自分类Dev

AngularJS指令-如何在异步数据加载后刷新模板

来自分类Dev

AngularJS指令-如何在异步数据加载后刷新模板

来自分类Dev

使用Angularjs指令时如何刷新树的内容?

来自分类Dev

刷新angularjs中的特定指令

来自分类Dev

每个$ httpRequest的Angularjs指令刷新

来自分类Dev

如何强制Mongoid刷新查询

来自分类Dev

如何强制用户刷新缓存

来自分类Dev

如何强制刷新连接的硬件?

来自分类Dev

如何强制刷新Chrome,Safari

来自分类Dev

如何强制画布fabricJS刷新

来自分类Dev

AngularJS-从控制器刷新指令

来自分类Dev

除非使用angularjs刷新页面,否则如何修复指令中来自服务的显示数据?

来自分类Dev

如何转换d3强制指令图以与angularjs一起使用?

来自分类Dev

AngularJS如何编译指令?

来自分类Dev

AngularJS如何编译指令?

来自分类Dev

如何:AngularJS路由刷新

来自分类Dev

如何从指令刷新控制器?

来自分类Dev

如何强制刷新req.user?

来自分类Dev

如何强制重新加载/刷新组件视图?

来自分类Dev

如何强制刷新/重新绘制JScrollPane?

来自分类Dev

如何强制对网站进行DNS刷新?

来自分类Dev

Breeze:如何强制刷新缓存中的实体

来自分类Dev

如何强制Rails ActiveRecord提交事务刷新

来自分类Dev

如何强制AmazonSQSBufferedAsyncClient刷新消息?

来自分类Dev

如何在DataGridView中强制“刷新”

来自分类Dev

如何强制刷新req.user?