Как получить контекст из модального ножа NativeScript через фрейм? - PullRequest
0 голосов
/ 12 апреля 2019

Я не могу заставить showModal передавать контекст через фрейм на страницу по умолчанию. Кроме того, displayModally, по-видимому, не срабатывает при загрузке модального режима (я полагаю, аргументы от displayModally должны передавать контекст?).

Я пробовал пример, представленный на https://docs.nativescript.org/ui/modal-view под Custom Actionbar, потому что мне нужно, чтобы модал загружался в кадре. Модальное окно открывается и закрывается нормально, но показ модального в модальном XML, похоже, не запускается.

дом / дом-page.js

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;

дом / дом-page.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>

дом / модальной root.xml

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

дом / модальный-View-page.js

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

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

дом / модальный вид-page.xml

<Page backgroundColor="green" showingModally="onShowingModally">
    <Page.actionBar>
        <ActionBar backgroundColor="red" title="Modal view" icon="">
        </ActionBar>
    </Page.actionBar>
    <StackLayout backgroundColor="lightGreen">
        <Label text="Modal view with ActionBar" style="text-align:center;" textWrap="true" />
        <Button text="Close Modal" tap="onCloseModal" />
    </StackLayout>
</Page>

Я добавил пример к https://play.nativescript.org/?template=play-js&id=lFxTi4&v=9 с консольной регистрацией.

Консоль показывает «Открывает модальное» при открытии и «Модальное закрывается» при закрытии, как и ожидалось (из home / home-page.js), но в консоли не отображается «onShowingModally» (home / modal-view-page.js) в консоли .

1 Ответ

0 голосов
/ 12 апреля 2019

Я думаю, что документы должны быть исправлены. Если у вас Frame отображается модально, событие вызывается на Frame, а не на странице внутри. Если вы показываете простое представление вместо Frame, то событие должно вызываться в представлении, в основном независимо от того, является ли корневое представление для вашего модального устройства, и в вашем примере это Frame.

Обновленная игровая площадка

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