Возвращенный Ajax HTML не отображается в предварительном теге

#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.