ng-show/ng-if 不会立即更新 dom 高度

2024-03-10

我有一个很长的 div,它是由 ng-hide 隐藏/显示的。 这是一个基于离子的示例demo http://codepen.io/leonz/full/bEqbKM/.

单击该按钮可以显示或隐藏 longDiv。如果您尝试在隐藏或显示页面后立即滚动页面。 有时你会发现即使 longDiv 隐藏后页面仍然可以向下滚动。有时即使显示 longDiv 后页面也无法向下滚动。但如果你等待几秒钟,然后尝试滚动页面,滚动条可以匹配页面的实际高度。

Html:

<ion-content ng-controller="controller">
  <button ng-click="test.show_detail=!test.show_detail">{{test.show_detail}}</button>
  <div ng-show='test.show_detail'>
    <div ng-repeat='i in test.list'>
      {{i}}
    </div>
  </div>
</ion-content>

JS:

.controller('controller', function ($scope) {
     $scope.test = {};
     $scope.test.show_detail = true;
     $scope.test.list = [];
     for(i=0; i< 1000; i++){
       $scope.test.list.push(i);
     }
}

如果长 div 容器中有复杂的模板内容,则很容易重现此问题。

有什么方法可以避免这个问题吗?


我不太了解 Ionic,无法说出为什么它更新这么慢,但是您应该能够通过使用 激活本机滚动来解决它overflow-scroll属性:

<ion-content ng-controller="controller" overflow-scroll="true">

或者通过注射$ionicScrollDelegate在你的控制器中并调用resize手动:

$scope.toggle = function() {
  $scope.test.show_detail = !$scope.test.show_detail;
  $ionicScrollDelegate.resize();
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ng-show/ng-if 不会立即更新 dom 高度 的相关文章

随机推荐

  • 如何查看 nusoap 的“原始 xml”输出?

    我有一个通用函数 用于传递 SOAP 命令 我需要查看正在处理的 RAW XML 数据sent到服务器来诊断错误 我怎么做 没关系 这似乎已经非常接近了 http www scottnichol com nusoapintro htm ht
  • 我可以让 IntelliJ IDEA 看起来更像 Eclipse 吗?

    我已经在 Eclipse 中进行开发很长一段时间了 但我仔细研究了 IntelliJ IDEA 9 0 3 因为它具有良好的 Flex 开发工具和 Maven flexmojos 集成 但我就是无法忍受 Ubuntu 10 04 上的外观
  • 如何在Linux中找到处理器队列长度

    尝试确定 Linux 计算机上的处理器队列长度 准备运行但当前未运行的进程数 Windows 中有一个针对此指标的 WMI 调用 但对 Linux 不太了解 我正在尝试挖掘 proc 和 top 以获取信息 有没有办法确定CPU的队列长度
  • JavaScript setInterval 限制?

    我有一个使用 JavaScript 的应用程序setInterval 运行数字时钟 我想知道它执行此函数的次数是否有超时或限制 setInterval 将无限运行 如果您希望终止 循环 可以使用clearInterval 例如 var co
  • 红宝石案例陈述与比较[重复]

    这个问题在这里已经有答案了 有没有办法使用caseruby 中整数比较的语句 我发现了很多比较字符串的例子 但是我的case下面的示例因语法错误而失败 def get price rank price case price when lt
  • 升级到 Xcode 8.2.1 后,iOS 模拟器无法在代理后面工作?

    我正在需要身份验证的代理环境中工作 由于我已升级到 Xcode 8 2 1 模拟器停止工作 但它在 Xcode 8 1 和 7 3 上运行良好对此有任何帮助吗 这是我收到的错误 PAC 获取失败并出现错误 NSURLErrorDomain
  • 在shell脚本中打印C程序的输出

    我有一个程序 我必须使用一个 c 程序将开尔文转换为远 反之亦然 我需要输出方面的帮助 它应该从我放入 file 和用户的 choice 中的数据文件中读取 并在 c 程序文件 farh kel 中运行它 while read val do
  • 禁用某些图像的缓存

    我使用 PHP 库生成一些图像 有时浏览器不会加载新生成的文件 如何仅对我动态创建的图像禁用缓存 注意 随着时间的推移 我必须对创建的图像使用相同的名称 解决这个问题的一个常见而简单的解决方案是向每个动态图像请求添加一个随机生成的查询字符串
  • 头文件中的 const 变量和静态初始化惨败

    在阅读了很多有关静态变量初始化的问题后 我仍然不确定这如何适用于const命名空间级别的变量 我有以下代码header file config h由构建脚本生成 static const std string path1 xyz abc s
  • ExtJS:将 html 表单转换为 ExtJS

    我希望能够将 html 表单转换为 ExtJs 表单 我读到您必须使用 applyTo 做一些事情 但不太确定该怎么做 我希望有人能为我提供一些帮助 Cheers 如果你想将表单中的每个元素转换为 ExtJS 元素 有人在煎茶论坛 http
  • QMediaPlayer 未定义引用链接器错误

    我安装了 Qt5 由于 Qt5 不支持 Phonon 我被迫使用其他东西 所以我决定使用 QtMultimedia 轮廓 QT core gui CONFIG mobility MOBILITY multimedia cpp代码 inclu
  • 用于重新加载部署的 WildFly CLI 命令

    我可以重新启动运行以下 Java 代码的整个 WildFly 服务器 但我只想重新加载名为 test war 的部署 怎么可能呢 public void flushall throws IOException Runtime getRunt
  • Angular FormArray 内容顺序

    Hya 我有以下设置 App Component Ts 内容 carForm FormGroup constructor private fb FormBuilder this carForm this fb group name type
  • 未配置 SQL 方言 (Phpstorm)

    我正在研究 Google oauthorization2 并遇到问题 未配置 SQL 方言 这就是为什么我的查询没有执行并且数据将进入表的原因 我在下面列出了我遇到问题的两个查询 工具 PhpStorm 8 MySQL 本地主机 user
  • 签署 mac 安装程序 (pkgmaker)

    我的安装程序是使用 PackageMaker 创建的 之后 我使用以下命令对安装程序进行了代码签名 产品签名 签名 Blah Inc 安装 mpkg CS 安装 mpkg 这似乎工作得很好 我可以看到它是使用以下命令签名的 pkgutil
  • 在Linux中,有没有办法找出哪个PCI卡插入哪个PCI插槽?

    在Linux中 有没有办法找出哪个PCI卡插入哪个PCI插槽 sys bus pci devices 包含许多不是卡的设备 桥 CPU 通道等 我无法在设备目录中找到有关插槽卡映射的任何信息 您可以使用 dmidecode t slot 查
  • 事件处理顺序

    Javascript jQuery 事件处理 如果事件 例如 点击 为父元素绑定了一个函数 为子 DOM 元素绑定了另一个处理函数 那么会调用哪一个函数 如果全部都被调用 那么按什么顺序调用 事件在 DOM 树中 向上 冒泡 因此如果您有某
  • 如何使用 ng-repeat track by $index 创建的量角器选择元素?

    我需要选择 ng repeat 创建的文本框并使用 sendKeys 函数发送一些值 但我不确定选择文本框的方法 请建议一种方法来完成此任务 或者我应该使用 css 选择器来代替 div class qst input hld ng sco
  • 使用 fopen 时出现段错误

    我从以下代码的第二行收到段错误 FILE output NULL output fopen output2 txt w 我不认为这是某种损坏的内存错误 因为当我将 w 更改为 r 时 它运行时没有段错误 另外 它似乎是在出现段错误之前创建该
  • ng-show/ng-if 不会立即更新 dom 高度

    我有一个很长的 div 它是由 ng hide 隐藏 显示的 这是一个基于离子的示例demo http codepen io leonz full bEqbKM 单击该按钮可以显示或隐藏 longDiv 如果您尝试在隐藏或显示页面后立即滚动