2014-04-15 5 views
5

In angularJS, ho un campo di input associato a ng-model, ho qualcosa da mostrare se l'input non è vuoto.perché angularJS considera gli spazi vuoti?

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

Quando premo il tasto spazio, il booleano di typeSignature=='' è ancora vero. Tuttavia, in jQuery il booleano $('#name').val() == '' sarà falso se ho premuto spazio.

Perché angularJS trattando lo spazio in modo diverso? Come posso rendere la funzione jQuery val() coerente con anguLarJS, ovvero trattare lo spazio come vuoto?

+0

Potete mostrare il vostro 'nome)' funzione (? Presumibilmente muta 'typeSignature'? – CodingIntrigue

+0

Prova a trovare un modo per implementare la tua soluzione in Angular senza utilizzare jQuery: è probabilmente possibile e più affidabile del mixaggio di due framework. – Blazemonger

+1

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

risposta

9

Il comportamento predefinito di angolare è per tagliare il valore del modello. Quindi, se si desidera ascoltare spazio nel modello è possibile impostare il flag ng-trim = "false"

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

Questo lo spiega bene. Grazie – 9blue

+3

se ha aiutato a risolvere il problema si prega di accettare la risposta :);) – Sai

+1

[Documentazione per gli ingressi di testo] (http://docs.angularjs.org/api/ng/input/input%5Btext%5D) – Blazemonger