Jakie myvarprzyjmuje się wartości inne niż null ? ng-showpokaże na każdym truthy wartości, tak długo jak myvarnie jest false, null, undefined, 0, lub pusty ciąg znaków NaNto powinno działać. Napisz więcej kodu kontekstowego.
Philipp Reichart
Aby wyjaśnić, powyższy przykład działa, mój kod nie działał z niepowiązanych powodów. Jeśli mylar ma wartość false, null lub nigdy wcześniej nie był używany (tj. $ Scope.myvar lub $ rootScope.myvar nigdy nie był wywoływany), element div nie zostanie wyświetlony. Po przypisaniu do niego jakiejkolwiek wartości element div zostanie wyświetlony, chyba że wartość jest konkretnie fałszywa.
Dobrą praktyką jest używanie <div ng-hide="myvar == null"></div>zamiast <div ng-show="myvar != null"></div>. Jest bardziej czytelny.
maicher
12
@maicher To naprawdę zależy od kontekstu
Petr Peller,
czy ng-show tłumaczy wyrażenie jako $scope.myvar != $scope.nulllub $scope.myvar != null? (pytanie opublikowane tutaj stackoverflow.com/questions/31387397 )
jperelli
Angular użyje javascript null. Naprawdę nie chcesz i tak zaczynać dodawania null do zakresu, ponieważ null powinno zawsze wynosić null (plus angular zignoruje $ scope.null it jeśli zostanie użyty w wyrażeniu).
Gruff Bunny
20
Aby wyjaśnić, powyższy przykład działa, mój kod w przykładzie nie działał z niepowiązanych powodów.
Jeśli myvar ma wartość false, null lub nigdy wcześniej nie był używany (tj. $ Scope.myvar lub $ rootScope.myvar nigdy nie został wywołany), element div nie zostanie wyświetlony. Po przypisaniu dowolnej wartości element div zostanie wyświetlony, chyba że wartość jest konkretnie fałszywa.
Następujące elementy spowodują wyświetlenie elementu DIV:
myvar
przyjmuje się wartości inne niż null ?ng-show
pokaże na każdym truthy wartości, tak długo jakmyvar
nie jestfalse
,null
,undefined
,0
, lub pusty ciąg znakówNaN
to powinno działać. Napisz więcej kodu kontekstowego.Odpowiedzi:
<div ng-hide="myvar == null"></div>
lub
<div ng-show="myvar != null"></div>
źródło
<div ng-hide="myvar == null"></div>
zamiast<div ng-show="myvar != null"></div>
. Jest bardziej czytelny.$scope.myvar != $scope.null
lub$scope.myvar != null
? (pytanie opublikowane tutaj stackoverflow.com/questions/31387397 )Aby wyjaśnić, powyższy przykład działa, mój kod w przykładzie nie działał z niepowiązanych powodów.
Jeśli myvar ma wartość false, null lub nigdy wcześniej nie był używany (tj. $ Scope.myvar lub $ rootScope.myvar nigdy nie został wywołany), element div nie zostanie wyświetlony. Po przypisaniu dowolnej wartości element div zostanie wyświetlony, chyba że wartość jest konkretnie fałszywa.
Następujące elementy spowodują wyświetlenie elementu DIV:
$scope.myvar = "Hello World";
lub
$scope.myvar = true;
Poniższe elementy spowodują ukrycie elementu div:
$scope.myvar = null;
lub
$scope.myvar = false;
źródło
W takim przypadku myvar powinna być wartością logiczną. Jeśli ta zmienna jest prawdziwa, pokaże div, jeśli jest fałszywa. Ukryje się.
Spójrz na to .
źródło
myvar
jest logiczna?