#vue.js #vuetify.js
Вопрос:
Я хочу нажать кнопку и выполнить эти 2 выражения.
Но мне нужно нажать на него дважды, чтобы выполнить оба:
1.) данные = истина и 2.) имя(данные). Почему он не может выполняться по щелчку мыши?
lt;button @click="data = true,name(data)"gt;
Ответ №1:
@AlexHunter, вероятно, лучше всего извлечь эту логику из функции обработчика. Что — то вроде приведенного ниже.
lt;button @click="handleClick"gt;click melt;/buttongt; ..... // in your methods section methods: { handleClick() { this.data = true this.name(data) } }
если data
есть что-то, к чему вы обращаетесь изнутри v-if
, вы можете вместо этого передать это обработчику, как показано ниже,
lt;button @click="handleClick(data)"gt;click melt;/buttongt; ..... // in your methods section methods: { handleClick(data) { // if data is false, return and don't call this.name() if (!this.data) return this.name(data) } }
Не видя больше вашего кода, я не уверен, каков ваш точный вариант использования, хотя я чувствую, что вы, возможно, могли бы упростить вышесказанное еще больше.
Ответ №2:
Добавление точки с запятой должно выполнять оба выражения по щелчку мыши.
lt;button @click="data = true; name(data)"gt;click melt;/buttongt;
Комментарии:
1. пробовал, мне приходится нажимать дважды
2. Вам следует поделиться большей частью своего кода. Я не знаю, что
data
иname
означает в вашем обработчике.3. data = true прикрепляется к v-if в div, если нажать «Показать div» и передать данные в функцию
4. Где указаны ваши данные и имя?