我有这个进度条
<div class="progress progress-striped" ng-class"{active: file.isUploading()}">
<div class="progress bar" role="progressbar" ng-style="{'width' : (file.sizeUploaded() / file.size * 100) + '%'}"></div>
</div>
使用 chrome 开发工具调试后,我将良好的宽度发送到 ng-style。当我停止执行时(在源代码中使用 F8),样式会更新到合适的宽度。如果我不停止执行,条形图会慢慢变为勉强 1%,然后当上传达到 100% 时,条形图会从 1 变为 100%。
我正在使用ng-flow 来上传我的文件,而不是一个完整的文件。
这里有一些图片来展示这种行为:
第一张图片显示它没有足够快地更新样式(0% 的栏没有显示一个小的蓝色条)
当文件完全上传时会发生这种情况
当我按 F8 时开发者工具源代码(调试)样式更新正确。
这是一个带有进度条的上传工作示例的链接。
我尝试在 ng 样式中使用 file.progress(),但它的行为相同。虽然没有调试器,但上传的大小更改得很好,它实际上只是似乎没有更新的 ng 样式。
编辑:在 Firefox 中进行测试,栏加载速度稍快,当文件达到 100% 时,加载速度可达 5-10% 左右。
编辑2:
sizeUploaded: function () {
var size = 0;
each(this.files, function (file) {
size += file.sizeUploaded();
});
return size;
}
这里的html...
<div flow-init flow-name="flow" class="span5 clearfix">
<div class="alert" flow-drop>
Drag And Drop your file(s) here
</div>
<span class="btn" flow-btn><i class="icon icon-file"></i> Upload File</span>
<div ng-repeat="file in flow.files">
{{file.name}} ({{file.size}} kB)
<br />
IS COMPLETE: {{file.isComplete()}}
<br />
ERROR: {{file.error}}
<br />
SIZE UPLOADED: {{file.sizeUploaded()}} kB
<br />
IS UPLOADING: {{file.isUploading()}}
<br />
{{file.sizeUploaded()}} kB / {{file.size}} kB | {{file.sizeUploaded() / file.size * 100 | number:0}}%
<div class="progress active progress-striped" ng-class"{active: file.isUploading()}">
<div class="progress bar" role="progressbar" ng-style="{'width' : (file.sizeUploaded() / file.size * 100) + '%'}">{{file.sizeUploaded()}} / {{file.size}} kB | {{file.sizeUploaded() / file.size * 100 | number:0}}%</div>
</div>
<input type="button" ng-click="file.resume()" value="Start/Resume" />
<input type="button" ng-click="file.pause()" value="Pause"/>
</div>
<table>
<tr ng-repeat="file in flow.files">
<td>{{$index+1}} | </td>
<td>{{file.name}}</td>
</tr>
</table>
</div>
附加说明:我使用的是 Angular 1.1.5