显示的angular-bootstrap进度条进度不正确

时间:2016-11-30 17:38:14

标签: javascript angularjs twitter-bootstrap electron angular-bootstrap

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

整个机制工作得很漂亮,进度条上方和内部的视图是正确的,而进度条本身显示丑陋的百分比区域。

以此为例(这是一个真实案例的屏幕截图): 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"也不起作用并重现同样的问题)。

1 个答案:

答案 0 :(得分:1)

我发现了这个问题。

几乎没有与代码相关的内容:我的代码是正确的。

问题是{{progress}}更新太快,因此视图没有足够的时间处理数据并进行更新。

同样,如果您完成进度条可能会遇到另一个错误,并且在很短的时间之后,您将其进度设置为0:您将看到该条向后(从100到0),并最终会当{{progress}}符合当前条形状时,再次提前。

简而言之,解决方案正在彻底改变数据收集率:我不是经常增加进度值,而是将主线程设置为仅发送100个数据包的集合,因此进度增加了因此,视图将有足够的时间更新。