1

Meteor アプリで、Iron Router コントローラーからアプリ内の部分テンプレートにデータを渡そうとしています。パスを変更せずにルートを有効にするにはどうすればよいですか? ページを切り替えたくないので、自分のデータでパーシャルをレンダリングするだけです (それが理にかなっている場合)。

アプリの仕組みは次のとおりです。

現在、ナビゲーションバーのドロップダウン リンクをクリックすると、ルートがアクティブになります。

Template.navbar.events
  'click #threads-link': (event)->
    Router.go 'allThreads'

これにより、ルートにパスがある限り、データを使用してテンプレートがレンダリングされます。しかし、パスを変更したくないので、パスを離れようとしましたが、テンプレートはコントローラーからデータを取得しません!

Router.map ->
  @route "allThreads",
    controller: ThreadsController 

パスを変更せずにコントローラー内のデータにアクセスするためにテンプレートを部分的に取得する方法を知っていますか? 前もって感謝します!

4

1 に答える 1

1

まず、Iron Router の最新バージョンでは Meteor v0.8.0 を使用する必要があるため、いくつかの問題が発生している可能性があります。以前のバージョンの Meteor を使用している場合は、古い Iron Router (0.6) を使用する必要があります。

ThreadsController 内でレンダリングをカスタマイズするには、アクション関数をオーバーライドするか、フックを定義します。次に、render メソッドを呼び出して、必要なテンプレートをレンダリングできます。次に例を示します。

ThreadsController = RouteController.extend({
  action: function () {
    // Example 1. render this controller's default template and all yields
    this.render();

    // Example 2. render myTemplate into the main yield
    this.render('myTemplate');

    // Example 3. render templates into yield regions
    this.render('myFooter', {to: 'footer'});
  }
}); 
于 2014-04-01T04:00:37.933 に答える