Как получить доступ к узлу контейнера в виде списка узлов для настраиваемого виджета dojo / dijit - PullRequest
2 голосов
/ 10 февраля 2010

Я пытаюсь создать собственный шаблонный виджет в додзё. Мне нужно сделать некоторые манипуляции с containerNode шаблона и использовать узел как dojo.NodeList. Я не могу заставить вещи функционировать так, как я хочу. Например, мне нужно иметь возможность "выталкивать / вставлять / сдвигать / снимать" детей с containerNode. Если я сделаю следующее для «добавления» дочернего узла DOM, это сработает:

var scrollPageItem = new _ScrollPageItem({...},"...");
this.containerNode.appendChild(scrollPageItem.domNode);

Но, похоже, это не работает:

var scrollPageItem = new _ScrollPageItem({...},"...");
var nl = new dojo.NodeList(this.containerNode);
nl.push(scrollPageItem.domNode);

И это тоже не так:

var scrollPageItem = new _ScrollPageItem({...},"...");
var nl = new dojo.NodeList(this.containerNode.children);
nl.push(scrollPageItem.domNode);

В обоих других случаях nl.push, похоже, ничего не делает, и просмотр DOM, кажется, ничего не добавляет. Любые мысли о том, как внутренне преобразовать dojoAttachPoint узел в dojo.NodeList?

1 Ответ

3 голосов
/ 12 февраля 2010

dojo.NodeList - это просто декорированный массив, поэтому использование метода push () для него просто помещает scrollPageItem.domNode в массив dojo.NodeList, но не добавляет его в DOM. Кроме того, вы можете использовать dojo.query () и передать узел для создания нового NodeList, это сэкономит немного времени на печать и вам не придется беспокоиться о том, чтобы забыть «new»:

dojo.query(this.containerNode).addContent(scrollPageItem.domNode);

Или, более прямой, не-dojo.NodeList маршрут:

dojo.place(scrollPageItem.domNode, this.containerNode);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...