Sammy
Sammy

Reputation: 229

Can't get back button work correctly in ember.js

Can't get back button work correctly in this example. Always returning to database state.

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);
    }
  })
})

Link to action 'show': {{ action show db href=true }}

STATEMANAGER: Entering root ember-1.0.0-pre.2.min.js:18
STATEMANAGER: Sending event 'navigateAway' to state root. ember-1.0.0-pre.2.min.js:18
STATEMANAGER: Sending event 'unroutePath' to state root. ember-1.0.0-pre.2.min.js:18
STATEMANAGER: Sending event 'routePath' to state root. ember-1.0.0-pre.2.min.js:18
STATEMANAGER: Entering root.index ember-1.0.0-pre.2.min.js:18
STATEMANAGER: Entering databases 

Then I am clicking a 'show' action

STATEMANAGER: Sending event 'show' to state databases. ember-1.0.0-pre.2.min.js:18
STATEMANAGER: Entering database 

Now pressing browser's back button

STATEMANAGER: Sending event 'navigateAway' to state database. ember-1.0.0-pre.2.min.js:18
STATEMANAGER: Sending event 'unroutePath' to state database. ember-1.0.0-pre.2.min.js:18
STATEMANAGER: Sending event 'routePath' to state database. 

Why it's state database? I guess it's because of transitionTo('database') in show action. What is the golden path to successfully display a list of items, click one and get detailed view, than click "back' and return to list view?

Upvotes: 0

Views: 660

Answers (1)

Sammy
Sammy

Reputation: 229

According to Mehul Kar's comment, routes should be nested.

Upvotes: 1

Related Questions