У меня проблема с автоматически сгенерированным кодом для веб-компонентов. Вот фрагмент HTML:Проблема с Dart WebUI сгенерированный код
<div id="hidden-ui">
<div id="auth-form" class="...">
...
<to-button></to-button>
</div>
...
</div>
Как вы можете видеть, есть пользовательский веб-компонент под названием to-button
:
<element name="to-button" constructor="TOSimpleButton" extends="div">
...
</element>
При запуске я хочу, чтобы переместить #auth-form
снаружи от родительского узла к документу корня:
Element af = document.query('#auth-form');
Element db = document.query('BODY');
db.children.add(af);
Это нормально, если в подвижном узле нет настраиваемых веб-компонентов, но в то время как to-button
находится внутри I получить rune time RangeError.
Вот кусок авто сгенерированного кода:
__e1 = __root.nodes[9].nodes[1].nodes[7];
__t.component(new TOSimpleButton()..host = __e1);
Как вы можете видеть, есть строгий старый путь к компоненту, таким образом RangeError рейза исключения.
Как я могу справиться с этим?
Зачем вам нужно перенести форму авторизации? Почему вы не можете разместить его в правильной позиции DOM? –
@PixelElephant, идея состоит в том, чтобы иметь скрытую DIV, содержащую все элементы пользовательского интерфейса (формально всплывающие формы), которые могут быть полезны или нет, поэтому, когда мне нужно показать форму аутентификации, я перемещаю ее в корень документа, когда мне нужно ее скрыть - просто переместите его обратно в скрытый div. Согласен, я могу использовать другой подход, более того, я уже использую другой подход, но я думаю, что это разумный вопрос, не так ли? –
ОК, я просто не видел необходимости в вашем конкретном случае, но я согласен, что это может быть проблемой в других ситуациях. –