javascript - 显示的 Angular Bootstrap 进度条进度不正确

标签 javascript angularjs twitter-bootstrap electron angular-bootstrap

我在外部窗口上运行一系列模拟,每次模拟完成后,我都会在主窗口上增加一个进度值(一切都通过 IPC 通信发生)。

整个机制运行良好,进度条上方和内部的 View 是正确的,而进度条本身显示丑陋的百分比区域。

以此为例(真实案例截图): enter image description here

指令是:

<uib-progressbar ng-if="typeof(progressMax) !== 'string'" 
  class="progress-striped danger" 
  max="100" 
  value="progress*100/progressMax" 
  type="danger">
    <i>{{progress}} / {{progressMax}} ({{progress*100/progressMax}}%)</i>
</uib-progressbar>

progressMax 值在按下按钮时设置(因此,当显示进度条时),进度从 0 开始并达到 progressMax。

如视频中所示,转换正确完成,但显然,进度条显示的好像是 90/1000 而不是 90/100。

我在一个使用 Webpack 和 AngularJS(和 Babel)的 ElectronJS 项目上运行它,不确定这是否相关。

我已经检查过其他类似的 Bootstrap 问题,但到目前为止没有一个对我有帮助(另外,设置 max="progressMax" 也不起作用并重现了同样的问题)。

最佳答案

我发现了问题。

实际上没有任何代码相关:我的代码是正确的。

问题是 {{progress}} 更新得太快,所以 View 没有足够的时间来处理和更新数据。

类似地,如果您完成一个进度条并且在短时间后将其进度设置为 0,则可能会遇到另一个错误:您会看到进度条倒退(从 100 到 0),并且最终会当 {{progress}} 达到当前栏状态时再次前进。

解决方案,简而言之,就是彻底改变数据收集率:我没有频繁增加进度值,而是将我的主线程设置为仅发送 100 个数据包的集合,这样进度增加就更慢了,因此, View 将有足够的时间进行更新。

关于javascript - 显示的 Angular Bootstrap 进度条进度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40894784/

相关文章:

javascript - 按值过滤数组中对象的最快方法

css - Bootstrap - 居中内部 div

javascript - Bootstrap typeahead 中的多项选择

javascript - Bootstrap 的 .dropdown ('toggle' ) 效果有点太好了 : dropdown is then unusable

javascript - 在js对象中获取元素数量

javascript - 在 ajax 调用中使用 FormData 发送 JSON 对象和文件,并在 PHP 中访问 json 对象

javascript - 对象父键 JavaScript

javascript - 在 resizable() 之后定位 DIV

javascript - Angularjs 指令更清晰的代码

css - Bootstrap 错误?试图达到 15 个字符