Как вызвать метод данных из обработчика событий в RactiveJS? - PullRequest
0 голосов
/ 25 января 2019

Я пишу компонент в Ractive JS v0.7.

Он имеет некоторое состояние: data.my_field.У него есть метод myMethod.У него также есть событие, my-event:

const MyComp = Ractive.extend({
    template: "#my-template",
    isolated: true,
    data: () => ({
        my_field: 10,
        myMethod(pow) {
            return this.get('my_field') ** pow;
        },
    }),
    oninit() {
        this.on('my-event', (event) => {
            const oldValue = this.get('my_field');
            alert("Old Value: " + oldValue);

            // Q: Is there a more direct way to call this?
            // Set my_field to its square:
            this.set('my_field', this.get('myMethod').call(this, 2));
        });
    }
});

Однако необходимость использовать .call(this, ...) после .get('myMethod') очень неэргономична и странна.Есть ли способ напрямую вызвать myMethod из обработчика событий?Насколько безопасно вызывать метод, извлеченный с использованием .get()?Или это то, что Рактив говорит, что я не должен делать?

...