2013-10-28 14 views
6

Wygląda na to, że dyrektywa Angulars ng-show interpretuje "N" i "NIE" jako wartości fałszujące.Dyrektywa Angularjs ng-show interpretuje "N" i "NIE" jako wartości fałszujące

W moim kątowej aplikacji, ja wyświetlania danych związanych z konkretnym kraju stosując następujący <div ng-show="countryCode">some code</div> Byłem zaskoczony, kiedy zorientowali się, że dane związane z Norwegii nie zostały pokazane. A to dlatego, że norweski kod kraju to "NIE", który jest uważany za wartość fikcyjną !!

Nie wiem, czy to jest wybór projektu. ale jeśli tak, w jaki sposób radzić sobie z tego rodzaju zagadnień

można odtworzyć ten here

góry dziękuję

+1

Właściwie jest to wybór projektu, można zobaczyć odpowiedzialną funkcję tutaj: https://github.com/angular/angular.js/blob/fca7bcaf43af3a4501ea0727d48f606c58d76bcd/src/Angular.js#L961 – DotDotDot

Odpowiedz

3

użytkowania ng-show="!!countryCode" wymusić zachowanie chcesz.


Po przeczytaniu kodu zachowanie wydaje się być zgodne z projektem. Jednak dokumentacja mówi:

jeśli wyrażenie jest truthy następnie element jest pokazane lub ukryte odpowiednio

który jest tylko prawda, jeśli kątowe programiści używają truthy oznaczać coś innego do jego javascript znaczenie.

+1

bang, bang. Uwielbiam JS. :) –

+1

Można również użyć 'ng-hide ="! CountryCode "'. –

+0

'!!' jest przyjętym idiomem do uzyskania wartości logicznej reprezentującej prawdziwość wartości javascript. Dobre stare, dynamicznie napisane języki. –