ng-class未被应用

时间:2013-03-28 11:31:46

标签: angularjs ng-class

我有一个textarea,其中包含要发布的消息以及仍然可用字符数的跨度。

<textarea name="" cols="" rows="" maxLength="{{maxMessageLength}}" ng-model="messageText"/>
<div id="chatmessage-buttons">              
    <a ng-click="sendMessage()"><span>Invia</span></a>
<span ng-class="{message-length-alert: (messageText.length > messageLengthAlertTreshold), message-length: true}">{{maxMessageLength - messageText.length}}</span>
</div>          

messageTextmaxMessageLengthmessageLengthAlertTreshold都在$scope中定义,当我在textarea中插入文本时,跨度内的计数器会正确更新,从而更改价值messageText.length

但是,无论message-length中包含的值是什么,css类message-length-alertmessageText都不会应用于我的范围。

我还尝试删除message-length-alert的检查,只留下{message-length: true}的ng-class属性,但无论如何都没有应用。

我错过了什么?

1 个答案:

答案 0 :(得分:69)

尝试将类名包装在引号中。代替

ng-class="{message-length-alert: (messageText.length > messageLengthAlertTreshold), message-length: true}

尝试

ng-class="{'message-length-alert': (messageText.length > messageLengthAlertTreshold), 'message-length': true}

这是因为散列键必须是字符串或类似于变量的名称。 (抱歉英文不好)