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

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

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, он печатает правильный номер.

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


person Darlyn    schedule 18.06.2016    source источник


Ответы (2)


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

template.content.appendChild( x )
person Supersharp    schedule 14.07.2016

Что, если вы используете только один 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().

person Sergio Moura    schedule 18.06.2016
comment
это не тот случай, когда я пытаюсь предупредить (x.children.length), он выводит правильное количество детей. Также просто чтобы убедиться, что я попробовал, и поведение остается прежним. - person Darlyn; 18.06.2016