这里是实现ngClass指令:我是否使用多个表达式来添加多个类?
data-ng-class="{ 'tooltip_show' : showTooltip , 'tooltip__' + brand.settings.name }"
的我想要的一个例子,但它不工作!有人可以帮忙吗?
这里是实现ngClass指令:我是否使用多个表达式来添加多个类?
data-ng-class="{ 'tooltip_show' : showTooltip , 'tooltip__' + brand.settings.name }"
的我想要的一个例子,但它不工作!有人可以帮忙吗?
使用数组形式ng-class
:
<div ng-class="[showTooltip ? 'tooltip_show' : '',
'tooltip__' + brand.settings.name]">
<div>
或计算类的JavaScript:
<div ng-class="computeClass(tooltip_show, brand.setting.name)">
</div>
$scope.computeClass(show, name) {
var obj = {};
obj.showTooltip = show;
obj['tooltip_'+name] = true;
return obj;
};
后一种方法更容易调试和复杂的计算更好。
参见,
是的,这是我认为你可以做的@стасПилипко,很好的答案georgeawg:+1: –
谢谢!有用! – madyar13
看起来您没有为第二项设置值。你的意思是这样
{ 'tooltip_show' : showTooltip , 'tooltip__' + brand.settings.name : tooltipText }
或
{ 'tooltip_show' : showTooltip , 'tooltip__' : brand.settings.name }
?
'tooltip__'+ brand.settings.name - 当我只写这部分时,我收到类似这样的类=“tooltip__class”。 brand.settings.name - 它是可变的,取决于页面。 – madyar13
http://jsbin.com/genaqapefe/edit?html,js,output
data-ng-class="{ 'tooltip_show': showToolTip, {{ 'tooltip_' + brand.settings.name }}: true }"
这是在这个仓为我工作。如果没有大括号,我无法评估它,但不知道这是否是最佳做法。
@стасПилипко还是你想让它始终显示?您可以使用一个类,如:'class =“{{'tooltip_'+ brand.settings.name}}”data-ng-class =“{'tooltip_show':showToolTip}”' – kauffee000
请参阅[AngularJS开发人员指南 - 为什么混合插值和表达式是不好的做法](https://docs.angularjs.org/guide/interpolation#embedding-interpolation-markup-inside-expressions) – georgeawg
你不应该在'class'属性的值中使用插值,当在同一个元素上使用'ngClass'指令时。请参阅[AngularJS ng-class指令参考 - 已知问题](https://docs.angularjs.org/api/ng/directive/ngClass#known-issues)。 – georgeawg
为什么有一个NG-类 'tooltip_show' 内的两个值? – Vivz
我需要一个依赖于showTooltip的类,而另一个依赖于此变量brand.settings.name。我能以另一种方式做到这一点吗? – madyar13
正如@harriyot所述。这应该足够了{'tooltip_show':showTooltip,'tooltip__'+ brand.settings.name:tooltipText} – Vivz