Değişken boşsa nasıl gösterilir / gizlenir


82

Bir değişkenin boş olup olmamasına bağlı olarak bir div göstermek / gizlemek istiyorum.

<div ng-show="myvar"></div>

Not: Benim durumumdaki değişken bir nesnedir.

Çok basit bir soru ama işe yarayacak gibi görünmüyorum.

Teşekkürler.



myvar == belki null
Gruff Bunny

2
Hangi boş olmayan değerler myvarvarsayılır? ng-showherhangi gösterecektir truthy böylece sürece, değeri myvardeğil false, null, undefined, 0, boş dize veya NaNçalışması lazım. Lütfen bağlam için biraz daha kod gönderin.
Philipp Reichart

Açıklığa kavuşturmak gerekirse, yukarıdaki örnek işe yarıyor, kodum ilgisiz nedenlerden dolayı olmadı. Mylar yanlışsa, boşsa veya daha önce hiç kullanılmamışsa (yani, $ kapsam.myvar veya $ rootScope.myvar hiç çağrılmamışsa), div gösterilmeyecektir. Ona herhangi bir değer atandığında, değerin özellikle yanlış olması dışında div gösterilir.
Paul Haggo

Yanıtlar:


201
<div ng-hide="myvar == null"></div>

veya

<div ng-show="myvar != null"></div>

16
Bunun <div ng-hide="myvar == null"></div>yerine kullanmak iyi bir uygulamadır <div ng-show="myvar != null"></div>. Daha okunaklı.
maicher

12
@maicher Bu gerçekten bağlama bağlı
Petr Peller

ng-show, ifadeyi $scope.myvar != $scope.nullveya olarak çevirir $scope.myvar != nullmi? (soruyu burada yayınladı stackoverflow.com/questions/31387397 )
jperelli

Angular, javascript null kullanır. Null her zaman null olması gerektiğinden, gerçekten de kapsama null eklemeye başlamak istemezsiniz (artı bir ifadede kullanılıyorsa açısal, $ kapsam.null öğesini yoksayacaktır).
Huysuz Tavşan

20

Açıklığa kavuşturmak gerekirse, yukarıdaki örnek işe yarıyor, örnekteki kodum ilgisiz nedenlerle çalışmadı.

Myvar yanlışsa, null ise veya daha önce hiç kullanılmamışsa (yani $ kapsam.myvar veya $ rootScope.myvar hiç çağrılmamışsa), div gösterilmeyecektir. Ona herhangi bir değer atandığında, değerin özellikle yanlış olması dışında div gösterilir.

Aşağıdakiler, div'in gösterilmesine neden olur:

$scope.myvar = "Hello World";

veya

$scope.myvar = true;

Aşağıdakiler div'i gizleyecektir:

$scope.myvar = null;

veya

$scope.myvar = false;

2

Bu durumda, myvar bir boole değeri olmalıdır. Bu değişken doğruysa, yanlışsa div'i gösterecektir. Gizlenecektir.

Kontrol bu out.


Yani sadece myvarboole ise işe yarayacağını mı söylüyorsunuz ?
Robert Harvey

Myvar'ın bir nesne olduğu bir çözüm bulmak istiyorum. Teşekkürler.
Paul Haggo

1
Doğru ya da yanlış olmalıdır.
Rodrigo Oliveira

Paul, geri dönüşün nedir?
Rodrigo Oliveira
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.