0

この例では、戻るボタンが正しく機能しません。常にデータベースの状態に戻ります。

App.Router = Ember.Router.extend({
  enableLogging: true,
  root: Ember.Route.extend({
    index: Ember.Route.extend({
      route: '/',
      redirectsTo: 'databases'
    })
  }),
  databases: Ember.Route.extend({
    route: '/databases',
    show: Ember.Route.transitionTo('database'),
    connectOutlets: function(router) {
      var applicationController = router.get('applicationController');
      applicationController.connectOutlet('databases');
      App.router.get('databasesController').loadDatabases();
    }
  }),
  database: Ember.Route.extend({
    route: "/databases/:db_name",
    connectOutlets: function(router, db) {
      var applicationController = router.get('applicationController');
      applicationController.connectOutlet('database', db);
    }
  })
})

アクションへのリンク'show':{{ action show db href=true }}

STATEMANAGER:ルートember-1.0.0-pre.2.min.js:18を入力しています
STATEMANAGER:イベント'navigateAway'をステートルートに送信しています。ember-1.0.0-pre.2.min.js:18
STATEMANAGER:イベント'unroutePath'を状態ルートに送信しています。ember-1.0.0-pre.2.min.js:18
STATEMANAGER:イベント'routePath'を状態ルートに送信しています。ember-1.0.0-pre.2.min.js:18
STATEMANAGER:root.index ember-1.0.0-pre.2.min.js:18と入力します
STATEMANAGER:データベースに入る

次に、「表示」アクションをクリックします

STATEMANAGER:イベント'show'を状態データベースに送信しています。ember-1.0.0-pre.2.min.js:18
STATEMANAGER:データベースに入る

ブラウザの戻るボタンを押します

STATEMANAGER:イベント'navigateAway'を状態データベースに送信しています。ember-1.0.0-pre.2.min.js:18
STATEMANAGER:イベント'unroutePath'を状態データベースに送信しています。ember-1.0.0-pre.2.min.js:18
STATEMANAGER:イベント'routePath'を状態データベースに送信しています。

なぜそれが状態データベースなのか?transitionTo('database')ショーアクションのせいだと思います。「戻る」をクリックしてリストビューに戻るよりも、アイテムのリストを正常に表示し、1つをクリックして詳細ビューを表示するためのゴールデンパスは何ですか?

4

1 に答える 1

1

Mehul Karのコメントによると、ルートはネストする必要があります。

于 2012-12-13T15:55:35.137 に答える