2015-05-22 22 views
7

वहाँ इस तरह कोणीय कुछ में कहने के लिए कोई तरीका है:प्रदर्शन "-" यदि मूल्य खाली है?

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

तो अगर वहाँ o.Name में कोई डेटा प्रदर्शित करने के लिए है "-"?

+1

आपका कोड काम [JSFiddle] (https://jsfiddle.net/bwh5abv8/3/) – valverde93

+1

जवाब एक सही विकल्प प्रस्तुत है, लेकिन वे कहते हैं कि इस तथ्य का पता नहीं है, तो क्या आपके पास सही काम नहीं है, जब आप इसे चलाते हैं तो वास्तव में मूल्य गलत नहीं होता है। – jdphenix

+1

, जैसा कि आपके उदाहरण से पहले उल्लेख किया गया है, क्या आप अपने डेटा का उदाहरण 'बाधाओं' में पोस्ट कर सकते हैं और हम यह पता लगा सकते हैं कि यह आपके लिए क्यों काम नहीं कर रहा है –

उत्तर

6

आपका उदाहरण काम करना चाहिए काम नहीं करता है आप ngIf का उपयोग कर कुछ हो सकता था, लेकिन आपको रिक्त है, तो या o.ame में एक फ़ंक्शन यह falsey को हल नहीं करेगा और आपको वांछित डैश के बजाय HTML में एक अदृश्य स्थान मिलेगा।

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; 
    }; 
}]); 

फिर आप इसका इस्तेमाल कर सकते हैं इस प्रकार है::

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

यह तो है

एक सामान्य फिल्टर डैश के लिए खाली मानों को बदल देते हैं और पहले इनपुट पर विभिन्न सामान्य लागू करने के लिए इस्तेमाल किया जा सकता अन्य पंक्तियों/स्तंभों के लिए पूरी तरह से पुन: प्रयोज्य और कहीं भी आप एक ही नियम लागू करना चाहते हैं।

उदाहरण: http://jsfiddle.net/kfknbsp7/4/

+0

यदि फ़ंक्शन वापस स्ट्रिंग नहीं करता है तो क्या होगा? – Grundy

+0

उपर्युक्त कोड के साथ-साथ आपको एक त्रुटि मिल जाएगी। सत्य कहा जाता है, मैं एक साधारण उदाहरण के साथ प्रदर्शन कर रहा था जिसने ओपी समस्या को सीधे संबोधित किया। निस्संदेह इस तरह का एक फ़िल्टर आपको प्रमाणित करने के लिए बहुत अधिक गुंजाइश देता है और अपना इनपुट जांचता है और आपकी एचटीएमएल फाइलों से इस तरह की गणना लेता है। – seanhodges

1

इस मामले आप इस तरह ngIf उपयोग कर सकते हैं:

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

अगर यह

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

एक ही समय में वही जवाब ... – carton

संबंधित मुद्दे