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.