我最初有这个,很简单:ng-class="response.name"
(其中response.name
是一个评估表达式。)
但现在我尝试这样做:ng-class="{response.name: true, tooltip: someExpression}"
(因此response.name
始终存在但tooltip
依赖于上下文。)
你知道,我不能将response.name
作为对象的关键......我知道这一点。它只是将字符串response.name
视为字符串,并且没有评估。但我需要有条件地应用tooltip
类。我不知道如何结合这些需求!
我首先尝试使用多个ng-class属性,但它忽略了除第一个之外的所有属性。
答案 0 :(得分:1)
你可以这样做
<div ng-class="{tooltip: someExpression}" class="{{response.name}}"></div>
请确保在所有支持的浏览器中对其进行测试,因为这样的动态设置属性会导致某些浏览器出现问题
答案 1 :(得分:1)
FWIW:从Angular 1.4开始,您可以混合使用表达式:
ng-class="[response.name, {tooltip: someExpression}]"
答案 2 :(得分:1)
ng-class允许你这样做:
<div ng-class="[response.name, {tooltip: someExpression}"></div>
答案 3 :(得分:0)
我个人用这种可怕的方式解决了这个问题:
{ {{ response.name }}: true, 'tooltip-container': {{ !!response.tooltip }} }
内插到计算表达式中的计算表达式。丑陋。绝对有利于Rob的方式。