2016-02-19 6 views
1

У меня есть код:.html() возвращает пустую строку

 htmlObject = '<div status-box></div>'; 
     template = $compile(htmlObject)($scope); 
     $scope.$digest(); 
     console.log(template); 
     var templateAsHtml = template.html(); 
     console.log(templateAsHtml); 

и выход: из первого console.log:

{0: <div status-box="" class="ng-scope"></div>, length: 1}

и от вторых:

''

Похоже, момент, когда я вызываю .html, он просто не преобразует его, и он пуст.

+3

'var templateAsHtml = шаблон [0] .outerHTML;', почему? –

+1

html() получает innerHtml, поэтому вам нужно использовать внешний – jackjop

ответ

4

При запросе .html() элемента вы получите innerHTML. Поскольку '<div status-box></div>' не имеет дочерних узлов, поведение является правильным. Если вы хотите вернуть HTML, включая сам объект, вам нужно использовать функцию outerHTML.

var templateAsHtml = template[0].outerHTML; 
console.log(templateAsHtml); 

Смотрите документы:

Замечание: при [0] используется для доступа к ваниль JavaScript объект внутри вашего объекта оболочки.

Смежные вопросы