#javascript #html #angularjs #ajax #pre
#javascript #HTML #angularjs #ajax #предварительный
Вопрос:
У меня есть обычный http get Ajax-вызов, который возвращает предварительно отформатированную строку html: 'u000au0009u0009u0009u0009u000au0009#07/04/2014#u000a'
Я пытаюсь установить это значение в предварительном теге.
HTML: <pre id="preContainer"></pre>
JS: var container = document.getElementById('preContainer');
Сработает, если я передам его в коде с жестким значением:
container.innerHTML = 'u000au0009u0009u0009u0009u000au0009#07/04/2014#u000a';
Но не сработает, если я передам напрямую возвращенный объект ajax (вызов Angular JS GET):
httpFactory.getHTML(..id..).success(function (emailHTML, status) {
var container = document.getElementById('preContainer');
container.innerHTML = emailHTML;
});
Значение hardcode и значение emailHTML точно такие же. Но позже это не форматируется в предварительном теге. Есть идеи, почему?
Ответ №1:
Я предполагаю, что они не совсем одинаковы, но все, на что вы смотрите, чтобы увидеть значение (например, chrome tools или w / e), просто показывает его в кодировке или w / e. (Если бы они были точно такими же, у вас был бы тот же результат)
Можете ли вы просто снова закодировать выходные данные перед вводом в тег innerHTML?
container.innerHtml = encodeHoweverYouEncode(emailHTML);
(Вероятно, вы хотите, чтобы он кодировался не так, но use w / e кодирует ваше значение там)
Комментарии:
1. Привет, Кайл — Когда я регистрируюсь сразу после http-вызова с помощью консоли. войдите в окно консоли Chrome, оно отображается в виде строки, но когда я копирую и вставляю снова в окно консоли, оно отображается как отформатированное.
Ответ №2:
Я только что попробовал вызов jquery Get, и pre tag отлично отображает HTML. Почему-то он не работает с http-вызовом Angular JS.