Nativescript- Vue закрытие модального режима после тайм-аута - PullRequest
0 голосов
/ 24 января 2020

Я открываю модальный компонент из функции Nativescript- Vue, которая прекрасно открывается

this.$showModal(SuccessModal).then(() => { console.log('Modal Closed') });

Я могу вызвать $modal.close с кнопки внутри модального окна, но получаю $modal is undefined если я попытаюсь вызвать это, скажем, с помощью mounted() ловушки.

Я хочу, чтобы модальное устройство закрывалось само по себе после трехсекундного тайм-аута, вместо того, чтобы пользователь нажимал за пределами модального режима.

Как бы я go об этом?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Вот поворот ответа @ Manoj. Вместо использования внешней переменной для привязки глобальной this, вы можете использовать .bind() в своей нативной (не стрелочной) функции, если вы склонны сделать это, например:

setTimeout(function() {
    this.$modal.close();
}.bind($this), 3000);
0 голосов
/ 28 января 2020

При использовании традиционного синтаксиса для функции вы теряете текущий контекст (это), используйте функции стрелки, чтобы избежать этого.

setTimeout(() => {
    this.$modal.close();
}, 3000);

Или вам придется хранить ссылку на контекст в переменной

var me = this;
setTimeout(function() {
    me.$modal.close();
}, 3000);
...