angular - कोणीय 2 पाइप हालत के तहत




condition conditional-statements (3)

क्या हालत में पाइप को लागू करने के लिए कोणीय 2 में संभव है? मैं कुछ ऐसा करना चाहूंगा:

{{ variable.text | (variable.value ? SomePipe : OtherPipe) }}

यदि नहीं, तो इस प्रभाव को प्राप्त करने का पसंदीदा तरीका क्या है?


आप ngIf उपयोग भी कर सकते हैं

<span *ngIf="variable.value; else elseBlock">{{ variable.text | SomePipe }}</span>
<ng-template #elseBlock>{{ variable.text | OtherPipe }}</ng-template>

मुझे यह उपयोगी लगता है अगर लाइन बहुत लंबी हो जाती है।


आपको सिंटैक्स को थोड़ा बदलना होगा:

{{variable.value ? (variable.text | SomePipe) : (variable.text | pipe2)}}

प्लंकर उदाहरण


जैसा कि अन्य ने बताया है, आप {{condition ? (value | pipe1) : (value2 | pipe2 )}} का वाक्यविन्यास उपयोग कर सकते {{condition ? (value | pipe1) : (value2 | pipe2 )}} {{condition ? (value | pipe1) : (value2 | pipe2 )}} |

लेकिन यह जानने योग्य है कि पाइप का प्रारूप पैरामीटर भी गतिशील हो सकता है। उदाहरण के लिए यह एक संख्या का एक उदाहरण है जिसे उच्च परिशुद्धता या निम्न परिशुद्धता के साथ स्वरूपित किया जा सकता है। शर्त को एक विधि में पारित किया जाता है, जो सशर्त रूप से एक फॉर्मेट टेक्स्ट बनाएगा।

  // in template
  {{ value | number:getFormat(true) }}

  // in .ts
  public getFormat(highPrecision = false): string {
    const digits = highPrecision ? 3 : 2;
    return condition ? `1.${digits}:${digits} : 1.${digits}-${digits};
  }

तो, हाँ, आप 2 पाइपों के बीच चयन करने के लिए एक शर्त का उपयोग कर सकते हैं। लेकिन कुछ मामलों में आप सशर्त प्रारूप पैरामीटर के साथ एक पाइप का उपयोग करने के लिए (या केवल आवश्यकता) पसंद कर सकते हैं।





angular2-pipe