javascript - Nativescript 导航逻辑

标签 javascript nativescript

请问一个关于 Javascript Nativescript 应用程序中的导航逻辑的快速问题。

许多应用程序似乎将导航绑定(bind)到 View js 文件。 我正在制作的应用程序在 JS 文件之间共享很多这种导航,我正在寻找一种方法来减少我正在使用的可重复代码的数量。

我知道 Angular 有路由器来处理这个问题,但我想知道是否可以使用 Javascript Nativescript 将所有导航逻辑包含在一个文件中。

目前我的导航是这样的:-

配置文件:

<Label text=“Navigation Label" tap="navigate" />

js:

var frameModule = require("ui/frame");
function navigationOptions(moduleVar) {
 frameModule.topmost().navigate({
   moduleName: moduleVar,
   transition: { name: "fade" },
   backstackVisible: false,
   clearHistory: true
 });
}

exports.navigate = function(args) {
 navigationOptions("views/catalog/catalog");
}

目前必须将 JS 重复到每个文件夹中,我只是在寻找一种方法来整理我的代码,您是否有建议或资源可以帮助我解决这个问题?

最佳答案

感谢 Nikolay 提供并由 TJ 创建的资源,我找到了解决方案: https://github.com/NativeScript/sample-Groceries/blob/javascript/app/shared/navigation.js

首先在共享文件夹中创建一个 navigation.js 文件:

app/shared/navigation.js

var frameModule = require("ui/frame");
var drawer;
module.exports = {
  /* Settings navigation */
  goToSettingsPage: function() {
    frameModule.topmost().navigate({
      moduleName: "views/settings/settings",
      transition: { name: "fade" },    // <-- This line
      backstackVisible: false,
    });
  },

然后您需要在您的 View js 文件中调用 js 文件:

app/views/dashboard.js

var navigation = require("../../shared/navigation");

并且还需要调用navigation.js中设置的函数

exports.goToSettingsPage = navigation.goToSettingsPage;

然后您可以简单地调用所需组件上的函数。

tap="goToSettingsPage"

对于您必须调用每个导航函数这一事实,我仍然不是 100% 大惊小怪,但它肯定比我以前的更好。

关于javascript - Nativescript 导航逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40278992/

相关文章:

javascript - Javascript 中的数据类型验证

javascript - 所有第三方 javascript SDK 都可以与 NativeScript 配合使用吗?

javascript - 如何检测 .flv 下载 URL?

javascript - 根据相似索引将 tbody td 附加到 th

javascript - 如何使用 NativeScript 的 BarcodeScanner 插件

android - NativeScript ListView 元素模板

javascript - 从 json 读取嵌套值

visual-studio-code - VS 代码中的扩展警告

javascript - 为什么将函数分配给 var 与简单地定义它不同?

javascript - activateController 在页面加载时被调用两次