सीएसएस समाधान काम करता है, हालांकि आपको वास्तव में स्टाइल पर नियंत्रण नहीं मिलता है। मेरे मामले में मैं लाइन ब्रेक के बाद थोड़ी और जगह चाहता था। यहाँ एक निर्देश है जो मैंने इसे बनाने के लिए बनाया है (टाइपस्क्रिप्ट):
function preDirective(): angular.IDirective {
return {
restrict: 'C',
priority: 450,
link: (scope, el, attr, ctrl) => {
scope.$watch(
() => el[0].innerHTML,
(newVal) => {
let lineBreakIndex = newVal.indexOf('\n');
if (lineBreakIndex > -1 && lineBreakIndex !== newVal.length - 1 && newVal.substr(lineBreakIndex + 1, 4) != '</p>') {
let newHtml = `<p>${replaceAll(el[0].innerHTML, '\n\n', '\n').split('\n').join('</p><p>')}</p>`;
el[0].innerHTML = newHtml;
}
}
)
}
};
function replaceAll(str, find, replace) {
return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
}
function escapeRegExp(str) {
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
}
angular.module('app').directive('pre', preDirective);
उपयोग:
<div class="pre">{{item.description}}</div>
यह सब करता है पाठ के प्रत्येक भाग को एक <p>
टैग में लपेटता है । उसके बाद आप इसे अपनी इच्छानुसार स्टाइल कर सकते हैं।