angularjs ng - show未按预期工作

时间:2014-10-05 13:15:44

标签: angularjs

我的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。 任何想法,为什么我不能让它工作?

由于

2 个答案:

答案 0 :(得分:2)

好像你的布尔值错了。 minimumCharactersMet()布尔值应该调用范围上的函数。像这样:

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

注意howManyMoreCharactersNeeded调用之后的大括号。否则就好像你要求的变量不是函数。

working plnkr

答案 1 :(得分:1)

除了@Reins所说的,另外两个语句也有这些错误:

  • 您在anyCharactersOver

  • 上缺少相同的功能调用括号
  • howMany函数中的return语句有一个括号错误。它应该是

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

  • 此外,isNumberOfCharactersWithinRange的返回值应为:

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

Plunker

PS:我使用ng-hide代替ng-show(!)