0

言うまでもなく、Meteor での私の経験は不足しています。私は Rails のバックグラウンドを持っており、Meteor よりも多くのロジック (およびマジック) をビューで実行できます。

状況: のようなルートがいくつかあります/things/:_id。そのルートに「もの」という名前を付けました。これはthing、ユーザーが所有する多数のルートのうちの1 つだけを示しているためthingsです。

FlowRouter.route('/things/:_id', {
  name: 'thing',
     action() {
       BlazeLayout.render('appPage', {app: 'thing', sidebar: "thingsListOnThing", header: 'thingTitle'});
     }
});

sidebarご覧のとおり、ナビゲーションを簡単にするために、ユーザーが所有するすべてのものを一覧表示するために作成したテンプレートも読み込んでいます。そのテンプレートthingsListOnThingは、この質問の対象です。

要点を理解しますか?things次のようにactive使用して、ユーザーの完全なリストを含むテンプレートを表示するルートをマークできますzimme:active-route

// A list of all a user's things
<div class="{{isActiveRoute name='things' class='is-active'}}">
List of Things
</div>

このパッケージは素晴らしいですが、現在のパスがアクティブなパスと一致するページだけでなく、/things/:_id個々のものへのすべてのリンクがis-active任意のページにあるため、次のようなルートでは役に立ちません。thing:_id_idthing

私は本当にここで立ち往生しています。私の最初の推測では、テンプレート ヘルパーを使用することになりますが、どこから始めればよいかわかりません。

必要に応じて、必要なコードをアップロードしてください。私が達成しようとしていることを理解するために、おそらく私のコードをすべて見る必要はないほど一般的な質問だと思いました。

4

1 に答える 1

0

使用:zimme:active-route

テンプレート ヘルパー

Template.listOfThings.helpers({
  activeListClass(page) {
    const active = ActiveRoute.name('thing') && FlowRouter.getParam('_id') === this._id;
    return active && 'active';
  },
});

テンプレート HTML:

  <a class="{{isActivePath 'thing'}}" href="/things/{{_id}}">
      <div class="thingListItem {{activeListClass page}}">
      {{title}}
      </div>
  </a>
于 2016-04-28T22:00:03.787 に答える