как создать персонализированное событие с текстом в аурелии - PullRequest
0 голосов
/ 25 сентября 2019

событие с измененной текстовой информацией. Потребитель должен передать событие, а не управлять им. Клиент будет извинять свой код в событии с текстовым обменом.Компонент просто выставит это событие.???это требование, как я могу создать в Аурелии?

компонент

textbox.html

<input type="text" class="form-control change.delegate="inputValueChange()">

textbox.ts

constructor() {

  }

  attached() {
    this.controller.validateTrigger = validateTrigger.changeOrBlur;
    this.controller.addRenderer(new BootstrapFormRenderer());
    this.controller.validate();
   } 

    public inputValueChange(newValue,oldValue){
      console.log(newValue)
      }
    }

app.html

<template>
<textbox  maxlength="10" autocomplete="on"></textbox>
<template>

1 Ответ

0 голосов
/ 26 сентября 2019

Вы можете использовать пользовательские события - в вашем текстовом компоненте добавьте это в конструктор:

constructor(private element: Element) {}

и в inputValueChange добавьте что-то вроде этого:

let event = new CustomEvent('textchange', { 
        detail: <some-data-you-want-to-send>,
        bubbles: true
    });

this.element.dispatchEvent(event);

Затем вы должны бытьвозможность использовать новое событие textchange, как это:

<textbox  maxlength="10" autocomplete="on" textchange.delegate="someFunction()"></textbox>

PS!в вашем примере вы пропускаете «после form-control / before change.delegate», что, вероятно, теперь вообще не будет вызывать inputValueChange

...