ngStyle中的AngularJS多个背景

ngStyle中的AngularJS多个背景

问题描述:

我正在尝试使用角度向某个元素应用渐变,但与ngStyle没有这样做。ngStyle中的AngularJS多个背景

这里是什么,我尽量做到一个例子: http://run.plnkr.co/plunks/mwJBcWaJ1hqOUCsSyy8a/

旧的链接,不工作了http://run.plnkr.co/maDs3PSWw4Y5tDfb/

在这个例子中我使用的是普通style="{{css}}",这是不推荐的方法如in the documentation(短版本,步骤5)所述。它不会在IE < = 11

渲染如果我尝试使用ng-style="css"和设置是这样的:

$scope.css = { 
    background: '-webkit-linear-gradient(' + gradient + ')', 
    background: '-moz-linear-gradient(' + gradient + ')' 
    … 
} 

你会看到明显的问题,css对象可以只包含一个实例background

我想不出许多情况下,我必须这样浏览器前缀。 AngularJS是以什么方式解决这个问题,还是有一个IE < = 11解决方案?

这是一个有趣的问题,我不认为一个解决方案的那一刻,虽然看到的渐变之前IE 10不存在有可能是一个解决办法:

对于IE 10,9 & 8你可以使用它,因为没有冲突存在。

$scope.css = { 
    '-ms-filter' : "progid:DXImageTransform.Microsoft.gradient ("+iegradient+")", 
    'background' : "linear-gradient("+gradient+")" 
}; 

style="{{css}}"将为所有其他现代浏览器做(即包括styleng-style)。

注:我假设style={{}}将在< IE11

失败默默如果这不适合你,你总是可以创建一个特定的指令背景梯度。如果您在评论中需要帮助,请告诉我。

+0

嗨,谢谢你的回答。 – 2014-09-05 07:59:04

+0

我花了很长时间来编辑评论......我刚刚看到连接到该pnk的链接不工作,我解决了这个问题。你的解决方案更具体一点,应该做的伎俩......现在回到摆脱ie-gradients – 2014-09-05 08:05:29

+0

@TobiasKOpelke,看到你的工作plunker:创建一个指令与两个div改变其大小不是更容易相对于另一个比使用不受支持的梯度(在传统IE中) – 2014-09-05 08:15:27