Отсутствует двусторонняя привязка данных и вычисляемое свойство - Riot.js

Несмотря на то, что я знаю, что могу добавить некоторые события, чтобы обновить некоторые из моих переменных, используя "event.target", как можно обновить среднее значение при изменении некоторых баллов, учитывая приведенный ниже пример?

 <my-tag>
    <virtual each="{ criterias }">
        <label for="{ name }">{ name }:</label>
        <input type="number" min="0" max="10" value="{ score }" name="{ name }" id="{ name }">
    </virtual>
    <p>Average: { average }</p>

    <script>
        this.criterias = [
        {
            name: 'Plot',
            score: 8
        },
        {
            name: 'Audio',
            score: 9
        },
        {
            name: 'Graphics',
            score: 7
        }
        ]

        this.average = this.criterias.reduce((a, b) => a + b['score'], 0) / this.criterias.length
    </script>
</my-tag>

1 ответ

this.update() вызывается после любого события изменения, как onclick, oninput и т.д. Я полагаю, что ваше среднее значение может быть вычислено внутри функции обновления, например

this.on('update', function(){
    this.average = this.criterias.reduce((a, b) => a + b['score'], 0);
});
Другие вопросы по тегам