2014-06-13 15 views
12

Bir değer boşsa, bir tablo hücresinde kesilmeyen bir alan göstermem gerekiyor.Açısal görünüm & nbsp değeri boşsa

<td class="licnum">{{participant.LicenseNumber}}</td> 

Bu denedim ama çalışmıyor:

enter image description here

edin: Burada

<td class="licnum">{{participant.LicenseNumber} || "$nbsp;"}</td> 

boş değerlere dönen sorunu da bu Bu benim şablon Lisans Numarası boş değer ile birlikte gelir, hücre boş ve satır rengi bu gibi görünüyor.

Lucuma önerisini kullanmak, bunu gösterir:

filtresinde eğer ifadeyi değiştirerek, hala boş olmayan değerler göstermiyor sonra

enter image description here

:

enter image description here

+0

Bir filtre kullan {{participant.LicenseNumber | myEmptyChkFilter}} ' –

+0

myEmptyChkFilter nedir? – MB34

+0

ve oluşturmak zorunda olduğunuz açısal bir filtre: https://docs.angularjs.org/guide/filter –

cevap

11

Ne çalışmalı. Kapanış } eksik ve kaldırılması gereken ifadenin ortasında bir tane var.

Çözümünüzün çalışmasını gösteren bir demo ve ng-if. http://plnkr.co/edit/UR7cLbi6GeqVYZOauAHZ?p=info

bir filtre muhtemelen gitmek rota, ancak bunu yapabilirdi basit ng-if (ya td üzerinde veya hatta bir yayılma üzerine) veya ng-show:

<td class="licnum" ng-if="participant.LicenseNumber">{{participant.LicenseNumber}}</td> 
<td class="licnum" ng-if="!participant.LicenseNumber">&nbsp;</td> 

veya

<td class="licnum"><span ng-if="participant.LicenseNumber">{{participant.LicenseNumber}}</span><span ng-if="!participant.LicenseNumber">&nbsp;</span></td> 

Bunu, bir denetleyiciye/filtreye kod eklemeyi gerektirmeyen alternatif bir çözüm olarak sunacağım.

Bu yöntemle hakkında biraz yukarı okuyabilir: if else statement in AngularJS templates

+0

Teşekkürler plnk, Hellow Dünyası örneğinden başka bir şey değildir. – MB34

+0

Güncelleme plnk.Orijinal (sabit) çözümünüzü ve bir ng-if değerini gösterir. http://plnkr.co/edit/UR7cLbi6GeqVYZOauAHZ?p=info – lucuma

+0

Filtreyle ilgili sorunlardan sonra, bunu yapmanın daha basit bir yolu gibi görünüyor ve verileri tabloya doğru şekilde gösteriyor. Kabul edilen cevapları değiştiriyorum. – MB34

6
angular.module('myApp',[]) 
    .filter('chkEmpty',function(){ 
     return function(input){ 
      if(angular.isString(input) && !(angular.equals(input,null) || angular.equals(input,''))) 
       return input; 
      else 
       return '&nbsp;'; 
     }; 
    }); 

bu böyle ngSanitize's direktifini ng-bind-html kullanmanız gerekir çalışması için @Donal sırayla söylediği gibi:

<td class="licnum" ng-bind-html="participant.LicenseNumber | chkEmpty"></td> 

DÜZENLEME: İşte

basit örnek: http://jsfiddle.net/mikeeconroy/TpPpB/

+0

Gerçekten garip çünkü bunu kullanarak aslında hücredeki " " yi değil, kırılmayan bir alanı gösteriyor. '' '' 'I dönmek için değiştirirseniz boş olarak gösterir ve bu yüzden satır renklendirmemde sorunlara neden olur. – MB34

+0

'ng-bind-html', dizeyi html olarak yorumlamalı ve'   'öğesini uygun şekilde dönüştürmelidir. Çalıştırılacak direktif için modülünüze 'ngSanitize' eklemeniz gerekir. –

+0

Bildirimlerime ngSantize eklediğimde, bana bir Hata Verilmeyen Nesne verir. – MB34

İlgili konular