2014-04-15 7 views
5

In angularJS, habe ich ein Eingabefeld binden mit ng-Modell, etwas zeigen, wenn die Eingabe nicht leer ist.Warum behandelt angularJS Leerzeichen leer?

<input id="name" type="text" ng-model="typeSignature" placeholder="Type your name here"> 
<div ng-show="typeSignature==''"> Something</div> 

Wenn ich die Leertaste drücken, ist die Boolesche von typeSignature=='' immer noch wahr. In jQuery wird der boolesche Wert $('#name').val() == '' jedoch falsch sein, wenn ich Leerzeichen gedrückt habe.

Warum behandelt angularJS den Raum anders? Wie kann ich jQuery val() Funktion mit anguLarJS, nämlich die Behandlung von leeren Raum als auch?

+0

Können Sie zeigen Sie Ihre 'Name()' Funktion? Vermutlich mutiert es "typeSignature"? – CodingIntrigue

+0

Versuchen Sie, einen Weg zu finden, Ihre Lösung in Angular zu implementieren, ohne jQuery zu verwenden - das ist wahrscheinlich möglich und zuverlässiger als das Mischen zweier Frameworks. – Blazemonger

+1

'$ .trim ($ (" # name "). Val())' –

Antwort

9

Das Standardverhalten von angular ist das Trimmen des Modellwerts. Also, wenn Sie in Modell Raum hören möchten, können Sie das Kennzeichen ng-trim = "false" gesetzt

<input ng-model="test" ng-trim="false"/> 
+0

Das erklärt es gut. Danke – 9blue

+3

Wenn es bei der Lösung Ihres Problems geholfen hat, bitte akzeptieren Sie die Antwort :);) – Sai

+1

[Dokumentation für Texteingaben] (http://docs.angularjs.org/api/ng/input/input%5Btext%5D) – Blazemonger