2016-10-12 6 views
1

Meteorのメリットの1つは、レンダリングが必要なときにのみコンテンツをロードすればよいことです。/imports/ui/clientにテンプレートファイルがある場合は、どこかにインポートしない限りロードされません。しかし、Iron Routerを使用すると、適切なルート経由でレンダリングする必要がある場合にのみ、テンプレートをどのように含めるべきかを判断することができませんでした。私が試した一つのアプローチは、ルート機能でインポートを宣言している:Iron Routerでルーティング中のMeteorでのテンプレートのインポート

Router.route('/', function() { 
    import '/imports/ui/client/home.js'; 
    this.render('home'); 
}); 

私はこのようにそれをやって鉄ルータドキュメントの任意の例を見ていないと私は」が、これは、テンプレートファイルのロードに成功しました私は前にはなかったいくつかのJavaScriptの問題を抱えていました。私はこれが正しい/最良のアプローチであるかどうか疑問です。

Iron RouterでMeteorを使用する場合、必要なときにのみテンプレートを含める最も良い方法は何ですか?

+0

一つは、私のhome.jsに、上記の例からファイル場合は、HTMLテンプレートを使用してインポート文が含まれていることで、いくつかのJavaScriptでは、HTMLテンプレートがロードされる前にJavaScriptがレンダリングされます。 HTMLテンプレートを最初にレンダリングする必要があります。 – Barry

答えて

0
import '/imports/ui/client/home.js'; 

Router.route('/', function() { 

    this.render('home'); 
}); 

私はあなたの方法に害を見ていないが、これは、examplesのほとんどで述べたように「標準」方法です。私はこのようにそれを行う

+0

ありがとうございます。しかし、私はこれがどのように動作するかわかりません。スタートアップやルートフォルダの下のroutes.jsファイルでこのルートを定義すると仮定すると、ホームページがレンダリングされるときだけでなく、home.jsに含まれるテンプレートが常にアプリケーションに読み込まれます。 – Barry

+0

レポやボイラープレートを共有できますか? – Ankit

0

...私は上で示唆したJavaScriptの問題の

Router.route('/join', { 
    name: 'join', 
    onBeforeAction: function() { 
    import '../../ui/pages/join/join.js'; 
    this.next(); 
    } 
}); 
関連する問題