J'ai une zone de texte contenant un message à publier et une étendue avec le nombre de caractères encore disponibles.
<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>
messageText
, maxMessageLength
et messageLengthAlertTreshold
sont tous définis dans le $scope
, et le compteur à l'intérieur de la plage est correctement mis à jour lorsque j'insère du texte dans la zone de texte, en modifiant la valeur de messageText.length
.
Cependant, ni la classe css message-length
nor message-length-alert
sont jamais appliqués à ma plage, quelle que soit la valeur contenue dans messageText
.
J'ai également essayé de supprimer le chèque pour message-length-alert
laissant l'attribut ng-class avec juste {message-length: true}
, mais il n'est pas appliqué de toute façon.
Qu'est-ce que je rate?
Essayez de mettre le nom de la classe entre guillemets. Au lieu
ng-class="{message-length-alert: (messageText.length > messageLengthAlertTreshold), message-length: true}
Essayer
ng-class="{'message-length-alert': (messageText.length > messageLengthAlertTreshold), 'message-length': true}
C'est parce que la clé de hachage doit être une chaîne ou un nom de type variable. (Désolé pour mon mauvais anglais)