我正在使用Angular UI Bootstrap来显示进度条。在IE中我的网站出现问题后,我在IE Angular UI Bootstrap website查看并发现以下内容:
进度条在IE10中不起作用
当我使用开发者工具切换到IE9浏览器模式时,进度条工作
因为对我来说这似乎很奇怪,新版本打破了进度条,我想我在这里问。
修改
答案 0 :(得分:2)
这很简单,你的变量$watch
scope
指示你的变量(在元素的属性中定义),当它改变时你改变{{1}中的值的属性。
<强> HTML:强>
element
<强> JS 强>
<div class="progress">
<div class="progress-bar" role="progressbar" progress-bar-watch="progress" progress-bar aria-valuenow="" aria-valuemin="0" aria-valuemax="100" style=""></div>
</div>
答案 1 :(得分:1)
太棒了!感谢您分享代码。但是,对代码稍作修改也会有效。
angular.module('myApp').directive('myProgress', function() {
return function(scope, element, attrs) {
scope.$watch(attrs.myProgress, function(val) {
element.html('<div class="bar" style="width: ' + val + '%"></div>');
});
}
});
答案 2 :(得分:0)
解决方法:创建自己的指令而不是使用Angular UI Bootstrap
这是我现在要走的路。所需的指令实际上非常简单:
指令:
angular.module('myApp').directive('myProgress', function() {
return function(scope, element, attrs) {
var percentage;
function updateProgress() {
element.html('<div class="bar" style="width: ' + percentage + '%"></div>');
}
scope.$watch(attrs.myProgress, function(val) {
percentage = val;
updateProgress();
});
updateProgress();
}
});
用法:
<div class="progress" my-progress="nameOfYourProgressModelVariable"></div>
但是,我仍然对使用Angular UI Bootstrap的正确解决方案感兴趣。