Редактировать: Решение найдено! См. Нижнюю часть вопроса для объяснения.
У меня есть директива sfNgFieldWrapper, которая содержит всплывающую подсказку, которую я получил от angularjUI ui-bootstrap.
Текст всплывающей подсказки установлен с tooltip="{{ttpText}}"
.
Проблема заключается в том, что текст содержит объекты html и эти сущности не переведены на правильный символ. Я не могу использовать ng-bind-html, но я проверил, и когда я использую его на промежутке, текст для всплывающей подсказки будет правильно преобразован. Однако я не могу использовать span и ng-bind-html, так как мне нужно использовать всплывающую подсказку.
Чтобы устранить это затруднительное положение, я думал, что буду использовать $sce.pareAsHtml
. Проблема в том, что объекты html неправильно преобразуются в символы!
Я использую его в своей функции связи директива следующим образом:
scope.ttpText = $sce.parseAsHtml(scope.ttpText);
Почему не parseAsHtml работы в то время как нг-связывать-HTML делает?
Я не могу поместить parseAsHtml внутри области. $ Watch, потому что это вызывает цикл.
TrustAsHtml не работает.
Функция подсказке связывает содержание следующим образом:
$document.find('body').append(tooltip);
Решение
Посмотрев в код Ui-загрузчике я начал поиск StackOverflow специально для него, и я нашел вопрос с подобным вопросом и решение! Angular-ui tooltip with HTML
Stupid меня может также просто проверили руководство AngularUI: http://angular-ui.github.io/bootstrap/#/tooltip
Решение простое, я могу просто добавить -html-unsafe
data-tooltip
после.
Как вы добавляете 'ttpText' в DOM? –
Моя директива имеет изолированную область, где ttpText определяется как ttpText: '@'. –
Вам нужно предоставить больше кода.Кроме того, когда я спрашиваю, как вы добавляете 'ttpText' в DOM, я спрашиваю, какую функцию вы используете:' .text() 'или' .html() '? –