2013-06-01 2 views
3

В (последнем) интерфейсе Dart Web UI, что лучший способ обработать элемент, когда он добавлен или удален из DOM с помощью шаблона? В идеале я хотел бы зарегистрировать обратный вызов в шаблоне, но это не является обязательным требованием.Как обрабатывать элементы, добавленные или удаленные из DOM по шаблону Dart Web UI

Справочная информация. Мне нужно зарегистрировать/отменить регистрацию некоторых элементов DOM из двух JS-библиотек (одним из которых является JQuery-плагин). Поскольку в моем шаблоне используются циклы и условные обозначения (и привязка данных), элементы могут входить и уходить в любое время, и я не могу просто зарегистрировать их после первоначального рендеринга.

+0

Питер, вы получили эту работу с методами Web UI жизненного цикла? – ianmjones

+0

Извините, я поставил проект на удержание и, следовательно, не достиг прогресса. Тем не менее, ваш ответ был ценным, и после большего количества исследований я считаю, что это правильный способ решить эту проблему (хотя мне все еще кажется странным). Поэтому я с радостью приму ваш ответ. –

ответ

1

Можно добавить обратные вызовы к классу вашего компонента, которые запускаются при его создании, вставке в DOM или удалении из DOM.

Web UI Specification: Lifecycle Methods

class MyComponent extends WebComponent { 

    inserted() { 
    // Do stuff when inserted into DOM. 
    } 

    removed() { 
    // Do stuff when removed from DOM. 
    } 
} 
+0

Плагины JS требуют использования определенного типа элемента (например, 'div' или' ul'). Это означает, что мне нужно продлить что-то вроде «DivComponent»? Будет ли это еще признано «div» JS/CSS? Пользовательский веб-компонент не совсем подходит для этого (предположительно общего) требования, но если он работает, это определенно лучше, чем ничего. –

+0

Пользовательский компонент должен быть объявлен как тип элемента div, абзаца или другого элемента HTML, а затем использовать класс, который вы определяете как его конструктор, поэтому я думаю, что все будет в порядке. Посмотрите, как объявить пользовательский компонент ... http://www.dartlang.org/articles/web-ui/#component-declaration, в примере используется . Это самый чистый способ, я могу думать о вставке и удалении трекинга, но если ваши элементы не легко компоненты, надеюсь, есть другое решение. – ianmjones

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

  • Нет связанных вопросов^_^