web-dev-qa-db-ja.com

ng-classが適用されていません

投稿するメッセージと、使用可能な文字数のスパンを含むテキストエリアがあります。

<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>          

messageTextmaxMessageLength、およびmessageLengthAlertTresholdはすべて$scopeで定義されており、textareaにテキストを挿入すると、スパン内のカウンターが正しく更新され、 messageText.length

ただし、messageTextに含まれる値に関係なく、cssクラスmessage-lengthnor message-length-alertはどちらもスパンに適用されません。

また、message-length-alertのチェックを削除して、ng-class属性を{message-length: true}だけにしてみましたが、とにかく適用されません。

私は何が欠けていますか?

26
Raibaz

クラス名を引用符で囲みます。代わりに

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

試して

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

ハッシュキーは文字列または変数のような名前でなければならないためです。 (悪い英語でごめんなさい)

69
ardentum-c