ng-class - 错误:令牌' - '在列{2}

时间:2014-09-15 15:46:11

标签: javascript angularjs ng-class

我有ng-class的问题。如果角色具有管理员权限,则添加类禁用状态。现在发生错误

HTML:

<label class="toggle modal-label-box" ng-class="{state-disabled: checkCanModify()}">
   <input type="radio" name="radio-toggle" ng-model="role" value="guest">
   <i data-swchon-text="ON" data-swchoff-text="OFF"></i>No role
</label>

JS:

$scope.checkCanModify = function() {
    return ($scope.role == "admin" ? true : false);
};

错误:

Syntax Error: Token '-' is at column {2} of the expression [{3}] starting at [{4}].

我如何解决这个问题? 此致

3 个答案:

答案 0 :(得分:4)

在课堂上加上引号:

"{'state-disabled': checkCanModify()}"

答案 1 :(得分:0)

当您使用对象表示法时使用ngClass指令,就像使用任何普通的javascript对象一样,属性名称就是有效的标识符。如果不是,你必须用引号括起来:

ng-class="{'state-disabled': checkCanModify()}"

答案 2 :(得分:0)

<label class="toggle modal-label-box" ng-class="{'state-disabled': role=='admin'}">
    <input type="radio" name="radio-toggle" ng-model="role" value="guest">Guest
    <input type="radio" name="radio-toggle" ng-model="role" value="admin">Admin
    <i data-swchon-text="ON" data-swchoff-text="OFF"></i>No role
</label>

如果角色是admin,则会添加“禁用状态”类。如果我们错过了将单引号放在'状态禁用'周围,它会抛出你得到的错误。或者我们可以简单地给出状态选择,没有连字符。