Добавление содержимого в тег шаблона

Я пытаюсь добавить контент в тег шаблона. я использую

getcontent("clients.json").then(function(x){
   obj = JSON.parse(x);
}).then(function(x){

   var x = createFullList(obj,docFragment);
   filtered = obj;
   return x;
}).then(function(x){
   template   .appendChild(x);
   var clone = document.importNode(template.content, true);
   alert(clone.children.length);
   aside.appendChild(clone)
});

getcontent - это ajax-вызов, который возвращает ответ, ответ анализируется и сохраняется как объект в переменной obj,

createFullList создает div для каждого элемента в ответе ajax и добавляет его во фрагмент, затем фрагмент добавляется в div, который также возвращается,

function createFullList( obj , fragment ){
   var aside       = document.getElementsByClassName("one")[0];
   for( x in obj ){
      createInfoElement( fragment , obj[x].general , obj[x].job , x);
   }
   var div = document.createElement("div");
   div.appendChild(fragment);
   deleteKid( aside , 1 );
   return div;
}

Что меня беспокоит, так это добавление в шаблон, это не так, когда я пытаюсь скопировать его содержимое, он говорит, что у него 0 детей, несмотря на то, что если я печатаю детей в div, он печатает правильное число.

Почему контент не добавляется в шаблон? Это правильный путь или есть какой-то конкретный способ, как правильно добавить контент в шаблон?

2 ответа

Вы должны добавить фрагмент в template.content вместо template:

template.content.appendChild( x )

Что делать, если вы используете только один then(), вот так:

var obj;
getcontent("clients.json").then(function(x){
   obj = JSON.parse(x);
}).then(function(){
  var x = createFullList(obj, docFragment);
  filtered = obj;

  template.appendChild(x);
  var clone = document.importNode(template.content, true);
  alert(clone.children.length);
  aside.appendChild(clone)

  return(x);
});

Я полагаю, что вы пытаетесь сослаться на переменную, которая недоступна в области, которая template.appendChild() ссылается на это.

Другие вопросы по тегам