यह पोस्ट एक सीएसएस समाधान के लिए है, लेकिन यह पद काफी पुराना है, इसलिए यदि अन्य लोग इस पर ठोकर खाते हैं और आधुनिक जेएस फ्रेमवर्क जैसे कि कोणीय 4+ का उपयोग कर रहे हैं, तो बिना कोणीय पाइप के माध्यम से ऐसा करने का एक सरल तरीका है सीएसएस के साथ गड़बड़।
संभवतः ऐसा करने के "रिएक्ट" या "व्यू" तरीके भी हैं। यह केवल यह प्रदर्शित करने के लिए है कि यह एक ढांचे के भीतर कैसे किया जा सकता है।
truncate-text.pipe.ts
/**
* Helper to truncate text using JS in view only.
*
* This is pretty difficult to do reliably with CSS, especially when there are
* multiple lines.
*
* Example: {{ value | truncateText:maxLength }} or {{ value | truncateText:45 }}
*
* If maxLength is not provided, the value will be returned without any truncating. If the
* text is shorter than the maxLength, the text will be returned untouched. If the text is greater
* than the maxLength, the text will be returned with 3 characters less than the max length plus
* some ellipsis at the end to indicate truncation.
*
* For example: some really long text I won't bother writing it all ha...
*/
@Pipe({ name: 'truncateText' })
export class TruncateTextPipe implements PipeTransform {
transform(value: string, ...args: any[]): any {
const maxLength = args[0]
const maxLengthNotProvided = !maxLength
const isShorterThanMaximumLength = value.length < maxLength
if (maxLengthNotProvided || isShorterThanMaximumLength) {
return value
}
const shortenedString = value.substr(0, maxLength - 3)
return `${shortenedString}...`
}
}
app.component.html
<h1>{{ application.name | truncateText:45 }}</h1>
textarea
याinput
उनके लिए अधिकतम लंबाई (maxlength="50"
यह HTML में है) संपत्ति है या आपको जावास्क्रिप्ट का उपयोग करना होगा। इसके अलावा, मुझे लगता है कि मैंने इसे गलत समझा, एक चौड़ाई निर्धारित करने से वाक्य अगली पंक्ति में गिरने पर मजबूर हो जाएगा जब यह अंत में हिट होगा। यह डिफ़ॉल्ट व्यवहार है।