#javascript #.net #angularjs
#javascript #.net #angularjs
Вопрос:
Я хотел бы украсить html-код, который я получаю из базы данных. Какой лучший способ сделать это без использования библиотек.
Я получаю эту информацию из базы данных:
@{ var model = (Text.Alert.Models.AlertTemplateModel)Model; var contentItems = model.ContentItems.OrderByDescending(d => d.PublicationDate).ToArray(); } @for (int i = 0; i < contentItems.Count(); i ){ <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody> <tr valign="top"> @if (!String.IsNullOrEmpty(contentItems[i].MediaUrl)) { <td width="132"><img src="@(contentItems[i].MediaUrl)" style="display: block;" alt="" width="103"> </td> } <td> <font color="#7391a2" size="2"> <font color="#d1065a" size="3"> @if (!string.IsNullOrEmpty(contentItems[i].Url)) { <a href="@(contentItems[i].Url)">@(contentItems[i].Title)</a> } else { @(contentItems[i].Title) } </font> <br> @(Raw(contentItems[i].Description)) </font> </td> </tr> </tbody> </table> <br/> }";
Это моя функция:
function makeReadable(text) {
var readableHTML = text;
var lb = 'rn';
//var htags = ["var", "@{", "@for", "@if", "@else", "}", "<img", "<html", "</html>", "</head>", "<title", "</title>", "<meta", "<link", "<style", "</style>", "</body>"];
var htags = ["var","@{","@for","@if","@else","}","<img", "<"];
for (i = 0; i < htags.length; i) {
var hhh = htags[i];
readableHTML = readableHTML.replace(new RegExp(hhh, 'gi'), lb hhh);
}
var btags = ["</div>", "</span>", "</form>", "<a", "<font", "</fieldset>", "<br>", "<br />", "</a>", "<hr", "<pre", "</pre>", "<blockquote", "</blockquote>", "<ul", "</ul>", "<ol", "</ol>", "<li", "<dl", "</dl>", "<dt", "</dt>", "<dd", "</dd>", "<!--", "<table", "</table>", "<caption", "</caption>", "<th", "</th>", "<tr", "</tr>", "<td", "</td>", "<script", "</script>", "<noscript", "</noscript>"];
for (i = 0; i < btags.length; i) {
var bbb = btags[i];
readableHTML = readableHTML.replace(new RegExp(bbb, 'gi'), lb bbb);
}
var ftags = ["<label", "</label>", "<legend", "</legend>", "<object", "</object>", "<embed", "</embed>", "<select", "</select>", "<option", "<option", "<input", "<textarea", "</textarea>"];
for (i = 0; i < ftags.length; i) {
var fff = ftags[i];
readableHTML = readableHTML.replace(new RegExp(fff, 'gi'), lb fff);
}
var xtags = ["<body", "<head", "<div", "<span", "<p", "<form", "<fieldset"];
for (i = 0; i < xtags.length; i) {
var xxx = xtags[i];
readableHTML = readableHTML.replace(new RegExp(xxx, 'gi'), lb lb xxx);
}
return readableHTML;
}
Когда я использую свою функцию, результат таков:
@{ var model = (Text.Alert.Models.AlertTemplateModel)Model; var contentItems = model.ContentItems.OrderByDescending(d => d.PublicationDate).ToArray(); } @for (int i = 0; i < contentItems.Count(); i ) {
<table border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody>
<tr valign="top"> @if (!String.IsNullOrEmpty(contentItems[i].MediaUrl)) {
<td width="132"><img src="@(contentItems[i].MediaUrl)" style="display: block;" alt="" width="103">
</td> }
<td>
<font color="#7391a2" size="2">
<font color="#d1065a" size="3"> @if (!string.IsNullOrEmpty(contentItems[i].Url)) {
<a href="@(contentItems[i].Url)">@(contentItems[i].Title)
</a> } else { @(contentItems[i].Title) } </font>
<br> @(Raw(contentItems[i].Description)) </font>
</td>
</tr> </tbody>
</table> <br/> }
";
Комментарии:
1. Если вы не используете какую-либо библиотеку, вам, вероятно, нужно создать свою собственную
2. ОК, тогда библиотеку witch будет лучше всего использовать?
3. для этого вы можете использовать шаблон подчеркивания или обработчики или усы