2016-05-07 4 views
2

Я пытаюсь создать пользовательский элемент в дротике. Он должен содержать только две кнопки. Это никогда не делает это через процесс строительства ... что я делаю неправильно?Как создать пользовательский элемент в дротике?

class GraphButton extends Element { 
    factory GraphButton() => new Element.tag('GraphButton'); 
    ButtonElement colorBtn; 
    ButtonElement removeBtn; 

    GraphButton.created() : super.created() { 

    } 

    void setup(String buttonText) { 
    text = buttonText; 
    //initialize color btn 
    colorBtn 
     ..id = 'colorBtn' + text 
     ..text = "colorSelector" 
     ..onClick.listen(
      (var e) => querySelector('#output').text = id + 'button clicked!'); 

//initialize remove button 
    removeBtn 
     ..id = 'removeBtn' + text 
     ..text = 'X' 
     ..onClick.listen(
      (var e) => this.remove()); 

    //add to DOM 
    this.children 
    ..add(colorBtn) 
    ..add(removeBtn); 
    } 
} 
+0

В чем проблема? У меня нет времени, чтобы взглянуть ближе, но есть похожие вопросы с ответами здесь на SO уже. –

ответ

1

В коде есть несколько проблем.

  • Пользовательские элементы должны следовать правилам именования, что они должны иметь - в имени
  • Элемент должен быть зарегистрирован для того, чтобы браузер, чтобы иметь возможность создать экземпляр их
  • Метод setup(...) вы добавили не вызывалась, поэтому не заголовок был добавлен к кнопке
  • Пользовательские элементы должны расширить HtmlElement

DartPad example

Смотрите также:

+0

Исправлено все. Большое вам спасибо за помощь! – Nick

+0

Не могли бы вы принять ответ, чтобы он понял, что ваша проблема решена (нажав галочку под кнопками «вверх» и «вниз»). –

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