0

我的指令,完全在Chrome,但不是在IE8不改變:寬度在IE

app.directive('barMax', function ($compile) { 
    return { 
     restrict: 'E', 
     scope: { 
      current: '=', 
      max: '=' 
     }, 
     link: function postLink(scope, element, attrs) { 
      scope.$watch('max', function (newValue) { 
       var newContent = ''; 
       newContent += '<div class="bottom" style="width:{{max*2}}px;">&nbsp;</div><div class="mid" ng-class="{greater: current >= max, less: current < max}" style="width:{{current*2}}px;">&nbsp;</div><div class="top" style="height:17px;"><div style="width:41%;float:left;margin-top:2px;margin-left:2px;"></div><div style="float:left;width:50%;margin-top:2px;"></div></div>'; 
       element.append($compile(newContent)(scope)); 
      }); 
     } 
    }; 
}); 

在IE中會發生什麼事是......例如以前可能最大:100和電流:100,則灰色條的寬度爲100px,彩色條的寬度爲100px。由於電流等於max,所以彩色條的顏色將是綠色,然後我將scope.changeability更新爲max:130和current:90,所以我應該預計灰色條的寬度爲130px,彩條應該有90px的寬度,但寬度不會更新。顏色是正確的。問題是寬度,因爲它沒有更新。

我還添加了填充工具

<!--[if lte IE 8]> 
    <script> 
     document.createElement('bar-max'); 
    </script> 
<![endif]--> 
+0

你能後全部用於以下類的CSS所有的一些例子:頂部,中部,底部,更多,更少。此外,內聯樣式+插值對我來說看起來很惹人討厭。我會使用動態CSS的'element.css'函數。 – mortalapeman

回答