NativeScript 中的自定义对话框
Custom Dialog in NativeScript
我正在学习NativeScript。作为这项工作的一部分,我正在尝试创建一个向用户显示对话框的页面。当用户单击一个按钮时,我需要向他们显示一个对话框,允许他们输入两个值(名字和姓氏)。
NativeScript 中的 dialogs module 提供了几个内置选项。但是,据我所知,这些选项中的 none 允许您创建一个显示两个字段的对话框。如何在 NativeScript 中创建一个对话框,提示用户输入名字和姓氏?目前,我的页面如下所示:
page.xml
<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="pageLoaded">
<GridLayout rows="auto, *">
<Border borderWidth="1" borderColor="#000" width="28" height="28" cornerRadius="14" tap="addPersonButton_Tap">
<Label text="add person" />
</Border>
</GridLayout>
</Page>
page.js
var viewModel = new MyPageViewModel();
function pageLoaded(args) {
var page = args.object;
page.bindingContext = viewModel;
}
exports.pageLoaded = pageLoaded;
function addPersonButton_Tap(args) {
console.log('new person');
/*
* Dialog open code goes here. Yet, the following definitaly is not correct.
dialogs.prompt({
title: "Add New Person",
message: "First Name",
okButtonText: "Save",
cancelButtonText: "Cancel",
inputType: dialogs.inputType.text
}).
then(function (r) {
if (r.result) {
console.log('User clicked "Save"!');
}
});
*/
}
exports.addPersonButton_Tap = addPersonButton_Tap;
我以前从未见过 NativeScript,只是翻阅了文档,我认为您的处理方式不正确。在文档中它说 "NativeScript lets you create dialogs in your app in a manner similar to the web browser. You can create alerts, confirmations, prompts, logins and dialogs that require action." 并且在网络浏览器中没有办法执行您的要求(拉出带有两个小文本字段的对话框提示)。在 Web 浏览器中,您可以通过使用 html 创建表单来完成此操作。它看起来像这里的示例 2:http://developer.telerik.com/featured/getting-started-nativescript/ 更符合您的要求。
我们已经支持模式页面。在这里你可以看到一个演示:https://github.com/NativeScript/NativeScript/blob/7c13db6bc241c48d5897d556f2973944b8b750d6/apps/app/ui-tests-app/modal-view/modal-view.ts.
此外,您还可以在文档中找到您需要的信息:
- http://docs.nativescript.org/ui-dialogs#prompt
- http://docs.nativescript.org/api-reference/classes/_ui_page_.page.html#showmodal
我只想再提一件事。我看到您正在使用 Border 标签。现在您可以改用 CSS 样式。
搜索显示自定义对话框时到达此处的任何人。请参考this
这里正确记录了如何在 nativescript 中显示自定义对话框。具体查找页面底部的 showModal 函数。在此函数中,用户可以传入模块名称(从应用程序根目录开始)、上下文、closeCallBack 函数和布尔值以全屏显示模式。
我正在学习NativeScript。作为这项工作的一部分,我正在尝试创建一个向用户显示对话框的页面。当用户单击一个按钮时,我需要向他们显示一个对话框,允许他们输入两个值(名字和姓氏)。
NativeScript 中的 dialogs module 提供了几个内置选项。但是,据我所知,这些选项中的 none 允许您创建一个显示两个字段的对话框。如何在 NativeScript 中创建一个对话框,提示用户输入名字和姓氏?目前,我的页面如下所示:
page.xml
<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="pageLoaded">
<GridLayout rows="auto, *">
<Border borderWidth="1" borderColor="#000" width="28" height="28" cornerRadius="14" tap="addPersonButton_Tap">
<Label text="add person" />
</Border>
</GridLayout>
</Page>
page.js
var viewModel = new MyPageViewModel();
function pageLoaded(args) {
var page = args.object;
page.bindingContext = viewModel;
}
exports.pageLoaded = pageLoaded;
function addPersonButton_Tap(args) {
console.log('new person');
/*
* Dialog open code goes here. Yet, the following definitaly is not correct.
dialogs.prompt({
title: "Add New Person",
message: "First Name",
okButtonText: "Save",
cancelButtonText: "Cancel",
inputType: dialogs.inputType.text
}).
then(function (r) {
if (r.result) {
console.log('User clicked "Save"!');
}
});
*/
}
exports.addPersonButton_Tap = addPersonButton_Tap;
我以前从未见过 NativeScript,只是翻阅了文档,我认为您的处理方式不正确。在文档中它说 "NativeScript lets you create dialogs in your app in a manner similar to the web browser. You can create alerts, confirmations, prompts, logins and dialogs that require action." 并且在网络浏览器中没有办法执行您的要求(拉出带有两个小文本字段的对话框提示)。在 Web 浏览器中,您可以通过使用 html 创建表单来完成此操作。它看起来像这里的示例 2:http://developer.telerik.com/featured/getting-started-nativescript/ 更符合您的要求。
我们已经支持模式页面。在这里你可以看到一个演示:https://github.com/NativeScript/NativeScript/blob/7c13db6bc241c48d5897d556f2973944b8b750d6/apps/app/ui-tests-app/modal-view/modal-view.ts.
此外,您还可以在文档中找到您需要的信息:
- http://docs.nativescript.org/ui-dialogs#prompt
- http://docs.nativescript.org/api-reference/classes/_ui_page_.page.html#showmodal
我只想再提一件事。我看到您正在使用 Border 标签。现在您可以改用 CSS 样式。
搜索显示自定义对话框时到达此处的任何人。请参考this
这里正确记录了如何在 nativescript 中显示自定义对话框。具体查找页面底部的 showModal 函数。在此函数中,用户可以传入模块名称(从应用程序根目录开始)、上下文、closeCallBack 函数和布尔值以全屏显示模式。