Невозможно повторить одно и то же условие дважды в классе ng

0

У меня есть следующий код...

<div class="row">
    <div class="col-md-5">
        <span>
            Comments
        </span>
    </div>

    @*<div class="col-md-7">*@
    <div class="col-md-7" ng-class="{'has-error': TaskObject.Comments.length > 500}">
        <textarea class="form-control" ng-model="TaskObject.Comments" maxlength="500"></textarea>
    </div>
</div>    

и где-то еще я использую идентичный элемент

<div class="row">
    <div class="col-md-5">
        <span>
            Comments
        </span>
    </div>

    @*<div class="col-md-7">*@
    <div class="col-md-7" ng-class="{'has-error': TaskObject.Comments.length > 500}">
        <textarea class="form-control" ng-model="TaskObject.Comments" maxlength="500"></textarea>
    </div>
</div>

дело в том, что когда я запускаю сайт, он выдает следующее исключение:

Uncaught Error: Syntax error, unrecognized expression: div[ng-class='{'has-error': TaskObject.Comments.length

Тем не менее, я заметил, что если я удалю в зависимости от того, что мне нравится, или событие добавит; в конце ОДНОГО из условий ошибка исчезает.

Любые идеи о том, почему это происходит?

  • 0
    Вы сломали HTML с вашей большей отметкой. Вы можете попробовать использовать форму 500<x .
  • 0
    Также вы можете написать фильтр для этого. Или собственная директива maxlength .

1 ответ

3

В начальной TaskObject.Comments было null и null не имеет свойства length.

Добавить дополнительную проверку в ng-class

Как это

 ng-class="{'has-error': TaskObject.Comments && TaskObject.Comments.length > 500}"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню