0

私のemberルーターは次のようになります。

Ew.Router.map ->
  @.resource "about", ->
    @.route "philosophy"
    @.route "leadership"
    @.route "staff"
    @.route "affiliations"
  @.route "conditions"
  @.route "programs"
  @.route "testimonials"

application.hbs にはナビゲーション バーがあり、[ABOUT] をクリックすると、サブページ リンクを含むサブナビゲーションが表示されます。「ABOUT」を「about/index.hbs」ではなく「philosophy.hbs」にリンクしてほしい。ただし、これを行うと、「アクティブな」クラスがメイン ナビゲーションの「ABOUT」に表示され、サブナビゲーションの「PHILOSOPHY」に表示されます。これは正しいです。ただし、about の別のサブページをクリックするとすぐに、「ABOUT」の「アクティブな」クラスが消え、サブナビ リンクにのみ表示されます。

「アクティブな」クラスをメイン ナビゲーションの「ABOUT」に常に表示する唯一の方法は、「about/index.hbs」ページを作成することです。しかし、サイトのアーキテクチャにより、「index」ではなく「philosophy.hbs」をランディングページのメインにする必要があります

URLがまだ「/about/leadership」、「/about/staff」などを読んでいるにもかかわらず、これが「アクティブ」状態を壊している理由はありますか? /about が URL にある限り、そのリンクのアクティブ状態はアクティブである必要があると思います。

4

2 に答える 2

1

Philosophy.hbs を表示する about ルートにリダイレクトを追加する必要があると思います。

App.AboutRoute = Ember.Route.extend({
  redirect: function(){
    this.transitionTo('about.philosophy');
  }
});

jsbinを作成して、それが機能するかどうかを知らせてください。

乾杯

于 2013-09-09T22:09:19.993 に答える
0

ルートにパスを指定してみましたか?

App.Router.map(function() {


this.resource('philosophy', { path: '/about' },  function() {
    this.route('leadership');
    // other routes
  });
});

この JSBin は、あなたがしようとしていることを捉えていますか? http://jsbin.com/UYIraQO/1/edit

于 2013-09-09T22:19:05.467 に答える