2016-10-27 16 views
1

ちょうどJavascriptをNativescriptアプリケーションのナビゲーション・ロジックに関する簡単な質問を持っています。Nativescriptナビゲーションロジック

アプリケーションの多くは意見のjsファイルへのナビゲーションを結ぶように見えます。 私は株式にJSファイル間のこのナビゲーションをたくさん作ってるんだと私は私が使用している再現可能なコードの量を削減する方法を探していたアプリケーション。

私は角度がこれを処理するようにルータを持って知っているが、私は1つのファイル内のナビゲーション・ロジックのすべてが含まれるようにJavascriptをNativescriptで行うことができる何かがあるのならば、私は思ったんだけど。

私はこのようにナビゲートしてる瞬間: -

のxml:

<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は、現時点では、各フォルダに繰り返さなければならないと私はちょうどあなたが、私はこれを助けるために見つけることができます勧告やリソースを持っていない、私のコードを整理する方法を探していますか?

+2

例として「sample-Groceries」に従うことができます - https://github.com/NativeScript/sample-Groceries/blob/javascript/app/shared/navigation.js、ここにはどのように含めることができますか1つのファイル内のナビゲーション全体。 –

+0

ありがとう!私は提供されたリソースのため、よりクリーンなナビゲーションを設定することができました。 – Tro

答えて

2

私は、リソースニコライによって提供され、TJが作成したおかげ解決策を見つけた:

アプリ/共有/ナビゲーション: https://github.com/NativeScript/sample-Groceries/blob/javascript/app/shared/navigation.js

はまずnavigation.jsファイルを共有フォルダ内に作成されます。

0123: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, 
    }); 
    }, 

は、次に、あなたのビューのjsファイル内のjsファイルを呼び出す必要があります

アプリ/ビュー/ dashboard.js

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

、あなたも、あなたが単に希望に関数を呼び出すことができますnavigation.js

exports.goToSettingsPage = navigation.goToSettingsPage; 

で設定した機能を呼び出す必要があります成分。

tap="goToSettingsPage" 

私はまだあなたが各ナビゲーション機能を呼び出す必要がありますが、それは確かに私が以前持っていたものよりはましだという事実上100%fussedないんだけど。

関連する問題