2013-07-03 21 views
12

Hem javascript hem de AngularJS için yeni ve tırnak içindeki ifadenin neden değerlendirilmediğini merak ediyorum?AngularJs: ng-show/ng-hide ifadesi değerlendirilmiyor

<span ng-show="{{remaining()}}!==0">sometext</span> 

basitçe böyle yazılıdır:

<span ng-show="2!==0">sometext</span> 

ve ng-show bakılmaksızın içeriğinin çalışmıyor. metni (ve basılı sentezleme), ifade, bir değerlendirme sarılı olsa bile gösterilmiştir:

eval("{{remaining()}}!==0") 

Bunun için zaman kontrol biriminde bir fonksiyonu oluşturmak için başvurulan: çalışır

<span ng-show="renderOrNot()">sometext</span> 

, ama {{}} kullandığınızda

, değerler ar ... bir fonksiyonunu ben

cevap

34

Neredeyse bir karşılaştırma yapmak istediğiniz her zaman yazmak zorunda kalmak tercih ediyorum enterpolasyonlu, yani işaretleme ifadenin sonucuyla değiştirilir. ifadeniz/içerik görüntülenmesi gereken zaman

Genelde
<span ng-show="remaining() !== 0">sometext</span> 

, sadece {{ }} isteyeceksiniz: ngShow yüzden sadece olduğu gibi işlevini kullanın ve işe yarayacak, sadece ifadesini bekliyor.

16

{{}} kullanamazsınız, çünkü değeriniz bağlanır. ng-show'u şu şekilde kullanın:

<span ng-show="remaining() !== 0">sometext</span>