angularjs - 如何让进度条工作?

标签 angularjs html twitter-bootstrap-3

我刚刚开始使用 Angular 并尝试使用指令创建进度条:

var module = angular.module("app", []);
module.directive("progressbar", function () {
    return {
        restrict: "A",
        link: function (scope, element) {

            //debugger;
            for (var i = 0; i<100;i++) {
                console.log(i);
                element.css("width", i / 100 + "%");
            }

        }
    };
});

HTML

<div ng-app="app">
    <div class="progress-bar progress-bar-warning" progressbar></div>
</div>

进入循环但没有任何显示?这是 fiddle 的链接: http://jsfiddle.net/dingen2010/fg229svz/23/

最佳答案

首先,您的进度条没有高度,因此其高度为0px。请设置一些高度。

其次,您的进度应该是 (i+1) 而不是 (i/100),因为宽度是从 0 开始的%100%。否则,宽度将从0.01%0.99%

第三,我认为您误解了 link 的用途。 link 必须在渲染任何指令之前完成,因此您不会看到 progress-bar 增长动画。应用程序将等待 link 内的循环完成后再显示。

您需要做的是 $watch 一些用于加载进度的指令属性。有很多方法可以实现这一点,这只是其中一种:

http://jsfiddle.net/dmqnqkkn/2/

关于angularjs - 如何让进度条工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33931189/

相关文章:

javascript - 在一个选项卡中选中的单选按钮在其他选项卡中未选中

jquery - 标题中带有特殊字符的 $.getJson 函数

php - 如何在从数据库填充的 Jquery 下拉列表中显示选中的值

css - 与 bootstrap 3.0 中的另一个 div 相比,如何水平对齐 div 内的图像?

javascript - Angular JS - 当文本字段失去焦点时显示验证错误

javascript - Angular 路线 : TypeError: undefined is not an object (evaluating 'angular.module' )

javascript - 输入字段更改表单已提交的数据的值?

javascript - 是否有任何解决方案可以显示从弹出窗口到选择字段的选定记录

javascript - 如何在 Angular 和 Bootstrap 3.3.7 中应用父级和子级的复选框

javascript - 停止重定向直到函数返回(Angular/HTML)