Я не могу заставить 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) в консоли .