2014-10-05 36 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語句有一個括號錯誤。它應該是

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

  • 而且,isNumberOfCharactersWithinRange的返回值應該是:

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

Plunker

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

+2

'字符<0? Math.abs(characters):0'與Math.abs(characters)相同 – Shomz 2014-10-05 13:54:34

2

看起來好像你的布爾錯誤。 minimumCharactersMet()布爾值應該調用作用域上的函數。像這樣:

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

請注意howManyMoreCharactersNeeded調用後的大括號。否則,就好像你要求一個變量而不是一個函數。

working plnkr

+0

謝謝。 rlecaro2的帖子有所有的錯誤,這就是我期待的。我不知道在SO – ytsejam 2014-10-05 13:54:59

+0

@ytsejam中做正確的事情,你應該接受最能幫助你的答案。 – Shomz 2014-10-05 13:56:14