У меня есть привязка к строке с разрывом строки, например 'Hello\nWorld'
в моей модели. Теперь я хочу показать значение в моем шаблоне, используя {{x}}
. Но разрыв строки отображается неправильно. Поддерживает ли полимер любую поддержку для вывода <br>
для разрывов строк?Связать текст с разрывами строк
ответ
Прямо сейчас вашим лучшим вариантом было бы создать Nl2br
PolymerElement
. Единственное место, где вы можете добавить наценки внутри шаблона, так что вам нужен шаблон, чтобы разбить строку и добавить в <br />
сек
Пример:
<nl2br-element text="{{}}"></nl2br-element>
nl2br.dart
library nl2br;
import "dart:html";
import 'package:polymer/polymer.dart';
import "package:polymer_expressions/polymer_expressions.dart";
@CustomTag('nl2br-element')
class Nl2brElement extends PolymerElement with ObservableMixin {
@observable String text;
DocumentFragment instanceTemplate(Element template) =>
template.createInstance(this,
new PolymerExpressions(globals: {
'splitnewline': (String input) => input.split("\n")
}));
}
nl2br.html
<polymer-element name="nl2br-element" attributes="text">
<template>
<template repeat="{{line in text | splitnewline}}">
{{line}}<br />
</template>
</template>
<script type="application/dart" src="nl2br.dart"></script>
</polymer-element>
nl2br_test.html
<!DOCTYPE html>
<html>
<head>
<link rel="import" href="nl2br.html">
<script src="packages/polymer/boot.js"></script>
</head>
<body>
<template id="nl2br" bind>
<nl2br-element text="{{}}"></nl2br-element>
</template>
<script type="application/dart" src="nl2br_test.dart"></script>
</body>
</html>
nl2br_test.dart
library nl2br_test;
import 'dart:html';
main() {
query("#nl2br").model = "foo\nbar";
}
Вы можете создать выражение полимера, который заменит \n
с <br />
. Прямо сейчас, полимер дезинфицирует весь html, и вы не можете обойти его без манипуляций с DOM. Так как он сделает <br />
html safe, foo\nbar
будет отображаться точно так же, как foo<br />bar
на странице без отображения перерыва. Это означает, что это не сделает именно то, что вы хотите, но если полимер добавит способ отображения безопасного html на странице, это будет путь.
library nl2br_mixin;
import "dart:html";
import "package:polymer_expressions/polymer_expressions.dart";
class Nl2brMixin {
DocumentFragment instanceTemplate(Element template) =>
template.createInstance(this,
new PolymerExpressions(globals: {
'nl2br': (String input) => input.replaceAll("\n", "<br />")
}));
}
Вы можете использовать этот подмешать с PolymerElement
class CustomElement extends PolymerElement with ObservableMixin, Nl2brMixin {
@observable
String text = "foo\nbar";
}
И использовать nl2br выражение в шаблоне
{{text | nl2br}}
Теперь это, вероятно, не лучший способ, чтобы получить nl2br
выражение в вашем пользовательском элементе без явного размещения его в вашем классе. Если у вас несколько микшинов, объявляющих instanceTemplate
, или объявите их в своем классе, только один из них будет работать.
Хороший ответ, на данный момент я использую решение от этого anwser: http://stackoverflow.com/a/19324203/218902 Позже, после поддержки полимера, я должен переключиться на ваш ответ. – Fox32
ОК, решил использовать ваше первое решение, но без дополнительного пользовательского элемента, чтобы уменьшить зависимости от дополнительных элементов. Интеграция решений в мой существующий элемент отлично работает, спасибо! – Fox32
- 1. Почему текст с разрывами строк не отображается?
- 2. соответствие между разрывами строк и разрывами строк
- 3. Отображение абзаца с разрывами строк
- 4. Как нарисовать текст с разрывами строк с помощью PIL Python
- 5. Проблема FILTER_SANITIZE_SPECIAL_CHARS с разрывами строк
- 6. Можно ли получить текст с разрывами строк через Word api?
- 7. JavaFX TextArea как установить текст с автоматическими новыми разрывами строк
- 8. JS сравнение строк с разрывами строк
- 9. Robot Framework - ввод текста с разрывами строк
- 10. JAVA - Печать строки с разрывами строк
- 11. JSON уничтожен разрывами строк
- 12. Пользовательская высота UITableViewCell с разрывами строк
- 13. программный ввод текстового блока с разрывами строк
- 14. RichTextBox SelectionStart offset с разрывами строк
- 15. Изменение BeautifulSoup .string с разрывами строк
- 16. PEAR Mail function - Проблемы с разрывами строк
- 17. Найти сообщения с сообщениями с разрывами строк
- 18. Как скопировать содержимое с разрывами строк из JTable в Excel с включенными разрывами строк
- 19. Заменить символ трубы «|» с разрывами строк?
- 20. Вставка полей с разрывами строк между ними
- 21. DB2: Как вставить клоб с разрывами строк
- 22. Phpmyadmin Проблема экспорта/импорта с разрывами строк
- 23. C# Кодирование текстовой строки с разрывами строк
- 24. Показать выходную текстовую область с разрывами строк
- 25. Соответствие регулярных выражений с разрывами строк
- 26. Отображение опубликованного текста с разрывами строк
- 27. Обводка комментариев с разрывами строк в PyCharm
- 28. Настройка строки NSTextView с разрывами строк
- 29. JSON в HTML с разрывами строк
- 30. Строка с разрывами строк не соответствует textarea.val()
Это похоже на тот же вопрос, что и http://stackoverflow.com/questions/19316300/bind-content-containing-html-tags, на котором alredy получил некоторые ответы. –