如何通过框架从NativeScript模式打开器获取上下文?

时间:2019-04-12 13:09:34

标签: nativescript

我无法让showModal通过框架将上下文传递到默认页面。另外,加载模态时似乎并不会触发showModally(我想来自showingModally的args应该传递上下文?)。

我尝试了https://docs.nativescript.org/ui/modal-view上“自定义操作”下的示例,因为我需要在框架中加载模式。模态可以很好地打开和关闭,但是模态XML中的showModally似乎无法运行。

home / home-page.js

CAN_INV_FILTER

home / home-page.xml

const modalView = "home/modal-root";

function openModal(args) {
  console.log('Opens modal');
  const mainpage = args.object.page;
  const context = "some context";
  mainpage.showModal(modalView, context, () => {
    console.log('Modal closed');
  }, true);
}
exports.openModal = openModal;

home / modal-root.xml

<Page xmlns="http://www.nativescript.org/tns.xsd">
    <Page.actionBar>
        <ActionBar title="Modal view Navigation" />
    </Page.actionBar>

    <GridLayout rows="auto, *">

        <Button text="Open modal" tap="openModal" textWrap="true" />

    </GridLayout>
</Page>

home / modal-view-page.js

<Frame defaultPage="home/modal-view-page" />

home / modal-view-page.xml

function onShowingModally(args) {
    console.log("onShowingModally");
}
exports.onShowingModally = onShowingModally;

function onCloseModal(args) {
    args.object.closeModal();
}
exports.onCloseModal = onCloseModal;

我已将示例添加到https://play.nativescript.org/?template=play-js&id=lFxTi4&v=9 使用控制台日志记录。

控制台显示打开状态为“打开模态”,关闭显示状态为“模态关闭”(来自home / home-page.js),但是“ onShowingModally”(home / modal-view-page.js)从不显示在控制台中

1 个答案:

答案 0 :(得分:0)

我认为文档需要修复。当Frame模态显示时,该事件将在Frame而不是其中的页面上调用。如果您显示的是一个简单的视图而不是Frame,则应该在视图上调用该事件,基本上是模态的根视图,在您的示例中是Frame

Updated Playground