AngularJS:为ngStyle应用过滤器
大家好 我在理解AngularJS方面有问题。我可以在ngStyle指令中使用自定义过滤器吗?当我更改输入中的值(但它更改标记中的值)时,为什么不能同时更改span标记的不透明度?如何在不直接使用控制器作用域的情况下实现此行为 我的原始代码: HTML:AngularJS:为ngStyle应用过滤器,angularjs,Angularjs,大家好 我在理解AngularJS方面有问题。我可以在ngStyle指令中使用自定义过滤器吗?当我更改输入中的值(但它更改标记中的值)时,为什么不能同时更改span标记的不透明度?如何在不直接使用控制器作用域的情况下实现此行为 我的原始代码: HTML: 我在JSFiddle的代码:回答一般问题,是的,通常可以在通用角度表达式中使用用户创建的过滤器。由于解析错误(可能是角度分析器中的错误),您可能在使用ng attr时遇到问题。您仍然可以使用ng attr中的过滤器 <span ng-st
我在JSFiddle的代码:回答一般问题,是的,通常可以在通用角度表达式中使用用户创建的
过滤器。由于解析错误(可能是角度分析器中的错误),您可能在使用ng attr
时遇到问题。您仍然可以使用ng attr
中的过滤器
<span ng-style="{ 'opacity': (slider | opacity) }">TEXT</span>
也可以使用直接设置样式
<span style="opacity: {{slider|opacity}}">TEXT</span>
无论哪种解决方案更好,主要取决于您计划在哪里重复使用东西。过滤器可用于所有范围
s,但此过滤器可能仅适用于给定的控制器。不要忘记,重用也可以通过指令(可以有控制器)来完成。为什么要使用ngStyle
而不是ngClass
?因为我不能用0.1、0.2、…、1.0的不透明度值来创建十个类
<span ng-style="{ 'opacity': (slider | opacity) }">TEXT</span>
<span ng-style="sliderStyle">TEXT</span>
<span style="opacity: {{slider|opacity}}">TEXT</span>
app.filter('opacity', function () {
return function (input) {
return 0.1 * input;
};
});