变量的角度ng-class

时间:2014-07-26 00:25:58

标签: javascript angularjs ng-class

使用Angular我想在编辑表单字段后将类应用于表单字段。类名称不是字符串,而是变量值,这似乎是一个问题。下面两段代码 - 工作一段,失败一段。

A)这有效:

<select ng-model="testModel" 
    ng-options="foo for foo in someList" 
    ng-change="testSwitch = 1" 
    ng-class="{'some-classname' : testSwitch }">

B)这也有效:

<select ng-model="testModel" 
    ng-options="foo for foo in someList" 
    ng-change="testSwitch = 1" 
    ng-class="{testVar}">

其中:

$scope.testVar = 'some-classname';

C)但这不是:

在视图中:

<select ng-model="testModel" 
    ng-options="foo for foo in someList" 
    ng-change="testSwitch = 1" 
    ng-class="{testVar : testSwitch }">

有谁知道原因或其他可能的解决方案?

2 个答案:

答案 0 :(得分:0)

如果您将类指定为变量,那么我认为angularJS要求如果您这样做,则不要使用:和布尔值来执行条件方法。

所以,而不是:

    <select ng-model="testModel" 
        ng-options="foo for foo in someList" 
        ng-change="testSwitch = 1" 
        ng-class="{testVar : testSwitch }">

返回 B 选项,然后在控制器中设置不同的类名,如下所示:

    $scope.testVar = testSwitch ? 'some-classname' : '';

然后它应该可以正常工作。

答案 1 :(得分:0)

您可以使用三元方法:

<select ng-model="testModel" 
    ng-options="foo for foo in someList" 
    ng-change="testSwitch = 1" 
    ng-class="testSwitch? testVar: ''">