2015-05-22 37 views
7

böyle açısal bir şey söylemek için herhangi bir yolu var mı:Değer boşsa "-" gösteriliyor mu?

<th ng-repeat=" o in Odds" >{{o.Name || "-"}}</th> 

Yani gösterilecek o.Name hiçbir veri yoksa "-"?

<th ng-repeat=" o in Odds" > 
     <span ng-if="o.Name">{{o.Name}}</span>   
     <span ng-if="!o.Name"> - </span> 
    </th> 
+1

Kodunuz çalışması [JSFiddle] (https://jsfiddle.net/bwh5abv8/3/) – valverde93

+1

cevaplar Doğru alternatifi sunmak, ama ne olursa Orada işe yaramazsın, değeri çalıştırdığın zaman gerçekte falsey değil. – jdphenix

+1

, örneğin, örneğiniz doğru olduğundan önce, Verilerinizin bir örneğini "Odds" içine gönderebilir ve sizin için neden çalışmadığını anlayabilir miyiz? –

cevap

6

Sizin örnek çalışması gerekir çalışmıyorsa ngIf kullanarak bir şey var, ama olabilir bu boşluğu varsa ya: Böyle ngIf kullanabilirsiniz Bu durum için

+0

eğer işlev dizgi döndürmüyorsa ne olur? – Grundy

+0

Yukarıdaki kodla birlikte bir hata alırsınız. Hakikaten, OP sorununu doğrudan ele alan basit bir örnekle gösteriliyordum. Elbette bunun gibi bir filtre, girişinizi doğrulamak ve yazmak için pek çok alan sunar ve HTML dosyalarınızdan böyle bir hesaplama yapar. – seanhodges

1

o bir işlev falsey çözmez ve istediğiniz tire yerine HTML içinde görünmez bir yer alacak.

<th ng-repeat=" o in Odds" >{{o.Name | placeholder:'-'}}</th> 

Bu daha sonra şu şekildedir:

angular.module('App.filters', []).filter('placeholder', [function() { 
    return function (text, placeholder) { 
     // If we're dealing with a function, get the value 
     if (angular.isFunction(text)) text = text(); 
     // Trim any whitespace and show placeholder if no content 
     return text.trim() || placeholder; 
    }; 
}]); 

Daha sonra kullanabilirsiniz:

genel bir filtre tire için boş değerler yerine ve ilk girişinde çeşitli normalleşmesini uygulamak için kullanılabilir Diğer satırlar/sütunlar için ve aynı kuralı uygulamak istediğiniz başka bir yerde tamamen yeniden kullanılabilir.

Örnek: onlar gerçeğini ele almazlarsa http://jsfiddle.net/kfknbsp7/4/

1

Bu

<th ng-repeat="o in Odds"> 
    <span ng-if="o.Name">{{o.Name}}</span> 
    <span ng-if="!o.Name">-</span> 
</th> 
+1

Aynı anda aynı cevabı ... – carton

İlgili konular