我的ng-show指令行为错误。
<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。 任何想法,为什么我不能让它工作?
由于
答案 0 :(得分:2)
好像你的布尔值错了。 minimumCharactersMet()布尔值应该调用范围上的函数。像这样:
$scope.minimumCharactersMet = function() {
return ($scope.howManyMoreCharactersNeeded() === 0);
};
注意howManyMoreCharactersNeeded调用之后的大括号。否则就好像你要求的变量不是函数。
答案 1 :(得分:1)
除了@Reins所说的,另外两个语句也有这些错误:
您在anyCharactersOver
howMany
函数中的return语句有一个括号错误。它应该是
return ( characters < 0 ? Math.abs(characters) : 0);
此外,isNumberOfCharactersWithinRange
的返回值应为:
$scope.minimumCharactersMet() && !$scope.anyCharactersOver();
PS:我使用ng-hide
代替ng-show(!)