xml - 标签点击上的页面导航引发异常
问题描述
我是具有 Web 开发背景的新手 NativeScript 开发人员。我正在创建一个具有(当前)两个主要页面的基本应用程序:login-page.xml
和signup-page.xml
.
这是目录结构:
app
|-- app-root.xml
|-- app.css
|-- app.js
|-- signup
|-- signup-page.xml
|-- login
|-- login-page.xml
|-- login-page.js
我正在尝试做的是建立往返login
and的导航signup
。
在阅读完此处的说明后,我想出了以下想法,以便在点击标签signup-page.xml
时导航到。
<!--login/login-page.xml-->
<Label class="small-text" text="Join us" tap="goto" />
...
<!--login-page.js-->
exports.goto = function (args) {
args.object.page.frame.navigate("~/signup/signup-page");
}
...
<!--app-root.xml-->
<Frame defaultPage="login/login-page"></Frame>
但是,此代码不起作用。每次点击标签时login-page.xml
,都会引发异常。这是错误消息:
An uncaught Exception occurred on "main" thread.
com.tns.NativeScriptException:
Calling js method onTouch failed
我确保在点击标签时调用函数goto()并且signup-page.xml
页面独立工作。
我如何设置一个简单的导航机制,就像它通过<a>
标签在网页上发生的那样?
解决方案
我终于找到了解决方案。
似乎变量框架未定义。由于习惯于一般的面向对象范式,我误认为它是args.object.page
.
对于一般(向前)导航,我们可以使用 NativeScript 的frame 模块。这是一个Js示例:
var frame = require("ui/frame");
...
...
exports.goto = function(){
frame.topmost().navigate("signup/signup-page");
}
注意:指定为函数参数的路径与问题中显示的目录结构有关。是的,看起来很奇怪,但是,尽管该目录在当前(登录)目录之外,但我们不必针对根目录引用它。navigate()
signup
推荐阅读
- ruby - 在我的 ruby 程序中获取 nextPageToken
- wordpress - 使用 AWS RDS 和我自己的数据库哪个最便宜?
- java - HotSwapAgent:如何将它用于 WAR 文件中的类?
- ios - UISplitViewController preferredPrimaryColumnWidthFraction 在 iPhone iOS 9 上不起作用
- ios - UITableView 的出列单元格数组
- javascript - 未捕获的类型错误:需要库时无法读取未定义的属性“解析”
- rest - Yammer API 获取 All Company 中所有用户的列表
- python - Tensorflow Cloud ML 对象检测 - 分布式训练的错误
- c++ - 使用函数参数作为常量表达式的一部分 - gcc vs clang
- php - 获取sql表数据,保存在一个php文件中的数组变量中,并显示在预先创建的表下的另一个php文件中