模态导航和关闭
Modal Navigation and close
我有两种情况
打开模态,在模态内进行一些导航后,我需要关闭模态,但是当我在导航的最后一页调用 this.$modal.close()
时,总是使用相同的 frame
模态框没有关闭
有没有办法让你有多个模式(一个打开下一个)并在最后一个关闭它们?在 android 上,我只是等待每个模态承诺得到履行,但在 iOS 上,这不起作用。
这是两种情况的示例https://play.nativescript.org/?template=play-vue&id=OVxmoC&v=2
您只能从模态组件的根调用 this.$modal.close()
,如果您从任何其他嵌套级别调用它,它将被简单地忽略。如果你真的想在导航后关闭模式,我认为你必须将 $modal
引用传递到导航树下,可能是通过 props
。如果这对您来说更容易,您甚至可以考虑使用事件总线/全球服务。
Modal.vue
this.$navigateTo(Secondary, {
frame: "modal-frame",
props: {
parentModal: this.$modal
}
});
Secondary.vue
export default {
props: ["parentModal"],
data() {
return {};
},
methods: {
onTap: function() {
if (this.parentModal) this.parentModal.close();
else this.$modal.close();
}
}
};
我有两种情况
打开模态,在模态内进行一些导航后,我需要关闭模态,但是当我在导航的最后一页调用
this.$modal.close()
时,总是使用相同的frame
模态框没有关闭有没有办法让你有多个模式(一个打开下一个)并在最后一个关闭它们?在 android 上,我只是等待每个模态承诺得到履行,但在 iOS 上,这不起作用。
这是两种情况的示例https://play.nativescript.org/?template=play-vue&id=OVxmoC&v=2
您只能从模态组件的根调用 this.$modal.close()
,如果您从任何其他嵌套级别调用它,它将被简单地忽略。如果你真的想在导航后关闭模式,我认为你必须将 $modal
引用传递到导航树下,可能是通过 props
。如果这对您来说更容易,您甚至可以考虑使用事件总线/全球服务。
Modal.vue
this.$navigateTo(Secondary, {
frame: "modal-frame",
props: {
parentModal: this.$modal
}
});
Secondary.vue
export default {
props: ["parentModal"],
data() {
return {};
},
methods: {
onTap: function() {
if (this.parentModal) this.parentModal.close();
else this.$modal.close();
}
}
};