web-dev-qa-db-ja.com

Vuejs-入力時に関数を実行します(ただし遅延あり)

入力フィールドがあり、v-on:input次のようなactivateというメソッドを実行します。

export default: {
    data() {
        return {
            isHidden: true
        }
    },
    methods: {
        activate() {
            this.isHidden = false;
        }
    }
}

isHiddenはいくつかのアイコンをオン/オフにします(このデータプロパティが何であるかは問題ではありません。私は単に例として使用しています)。

したがって、現在、ユーザーがinputを実行すると、すぐにactivate関数がオンになります。おそらく、setTimeoutを介して遅延させる方法はありますか?私は次のことを試みましたが、うまくいきません:

methods: {
    setTimeout(function() {
        activate() {
            this.isHidden = false;
        }
    }, 500)
}
11
MonkeyOnARock

これを試して:

methods: {
  activate() {
    setTimeout(() => this.isHidden = false, 500);
  }
}
21
Joe Attardi

または矢印機能なし:

methods: {
    activate() {
        var that = this;
        setTimeout(function() { that.isHidden = false; }, 500);
    }
}
2
leshkin