2013-07-03 7 views
12

Ich bin neu in Javascript und AngularJS und frage mich, warum wird der Ausdruck in den Zitaten nicht ausgewertet?AngularJs: ng-show/ng-hide Ausdruck nicht ausgewertet

<span ng-show="2!==0">sometext</span> 

und die ng-Show funktioniert nicht unabhängig vom Inhalt:

<span ng-show="{{remaining()}}!==0">sometext</span> 

es ist einfach so gedruckt. Der Text (und die gedruckte expression) gezeigt, selbst wenn der Ausdruck in einem eval gewickelt ist,:

eval("{{remaining()}}!==0") 

I zurückgegriffen, eine Funktion in meinem Controller dafür zu erstellen:

<span ng-show="renderOrNot()">sometext</span> 

die funktioniert, aber ich würde es vorziehen, nicht eine Funktion jedes Mal, wenn ich einen Vergleich

Antwort

34

Fast fertig machen wollen, haben zu schreiben ...

Wenn Sie {{}} verwenden, werden die Werte ar interpoliert, d.h. das Markup wird durch das Ergebnis des Ausdrucks ersetzt. ngShow erwartet nur den Ausdruck, verwenden Sie so nur die Funktion, wie es ist, und es wird funktionieren:

<span ng-show="remaining() !== 0">sometext</span> 

In der Regel werden Sie wollen nur {{ }}, wenn der Ausdruck/Inhalt angezeigt werden soll.

16

Sie dürfen es nicht {{}} verwenden, da Ihr Wert bind ist. Verwenden Sie ng-show wie folgt:

<span ng-show="remaining() !== 0">sometext</span> 
Verwandte Themen