How do I fire a custom event from Polymer Dart?

后端 未结 3 1949
栀梦
栀梦 2020-11-30 05:26

I want to fire/send/emit a custom event from inside a Polymer element. For example, I want to convert a normal DOM event like \"changed\" to a more semantic event like \"tod

3条回答
  •  醉酒成梦
    2020-11-30 05:40

    Step 1

    Capture the change events on the . Notice the on-change below.

    
    
    

    Step 2

    Handle the change event in the custom element code that contains the checkbox.

    import 'package:polymer/polymer.dart';
    import 'dart:html';
    import 'models.dart';
    
    @CustomTag('todo-item')
    class TodoItemElement extends PolymerElement with ObservableMixin {
      @observable Item item;
    
      bool get applyAuthorStyles => true;
    
      void change(Event e, var details, Node target) {
        // do stuff here
      }
    }
    

    Notice the change event handler. That method is run any time the checkbox state changes.

    Step 3

    Dispatch a custom event.

      void change(Event e, var details, Node target) {
        dispatchEvent(new CustomEvent('todochange'));
      }
    

    NOTE: the custom event name must not contain dashes.

    Step 4

    Listen for the custom event in a parent custom element.

        
    

    Notice the use of on-todochange.

    Enjoy!

提交回复
热议问题