2014-10-05 3 views
0

Я получаю неправильное поведение с моими директивами ng-show.angularjs ng - показ не работает должным образом

<span class="spanLabel" ng-show="!minimumCharactersMet()" >You need at least {{ howManyMoreCharactersNeeded() }} characters more</span> 
<span class="spanLabel" ng-show="isNumberOfCharactersWithinRange()" >Remaining characters: {{ howManyCharactersRemaining() }}</span> 
<span class="spanLabel warning" ng-show="anyCharactersOver()" >{{howManyCharactersOver()}} characters too many</span> 

При попытке ввода текста диапазона рассчитывают снизу, чтобы предупредить пользователя о минимум 2 символа, обратный отсчет работ и после пребывания там и не скрывает. Также второй не отображается.

Вот мой plunker link со всеми функциями и html. Любые идеи, почему я не могу заставить его работать?

Благодаря

ответ

1

В дополнение к тому, что @Reins сказал, что две другие заявления эти ошибки:

  • Вы недостающую те же функции-вызова скобки на anyCharactersOver

  • Оператор возврата в функциях howMany имеет ошибку в скобках. Он должен быть

    return (characters < 0 ? Math.abs(characters) : 0);

  • Кроме того, возвращаемое значение isNumberOfCharactersWithinRange должно быть:

    $scope.minimumCharactersMet() && !$scope.anyCharactersOver();

Plunker

PS: Я хотел бы использовать ng-hide вместо ng-show(!)

+2

'символы <0? Math.abs (символы): 0' то же, что и 'Math.abs (characters)' – Shomz

2

Кажется, что ваш булево неправильно. Минимальное значение charCharactersMet() должно вызывать функцию в области видимости. Например:

$scope.minimumCharactersMet = function() { 
    return ($scope.howManyMoreCharactersNeeded() === 0); 
}; 

Обратите внимание на фигурные скобки после вызова howManyMoreCharactersNeeded. В противном случае было бы так, как будто вы просили переменную не функцию.

working plnkr

+0

Спасибо. Сообщение rlecaro2 имеет все ошибки, поэтому я ожидал этого. Я не знаю, что это правильно делать в SO – ytsejam

+0

@ytsejam, вы должны принять ответ, который вам больше всего помог. – Shomz

Смежные вопросы