bao
bao

Reputation: 1

Routing in Ember.js

I try to use routing in Ember.js, but it does not seem to be working properly.

The full code is here on Github, but a portion is below:

define(['ember', 'app/controllers/controller', 'app/views/view'], function (ember, controller, view) {
    var Router = Ember.Router.extend({
        root: Ember.State.extend({
            index: Ember.State.extend({
                // location: Ember.Location.create({style: 'hash'}),
                location: 'hash',
                enableLogging: true,
                route: '/',
                redirectsTo: 'news.index'
            }),
            news: Ember.State.extend({
                route: '/news',
                // showPost : Ember.State.transitionTo('post'),
                test: Ember.ViewState.extend({
                    route: '/test',
                    view: view.appendTo('body')
                }),
                index: Ember.ViewState.extend({
                    route: '/',
                    view: null
                })
            })
        })
    });
    var router = Router.create({});
    return router;
});

Upvotes: 0

Views: 1432

Answers (1)

Roy Daniels
Roy Daniels

Reputation: 6309

I think you need to change your code to this:

define(['ember', 'app/controllers/controller', 'app/views/view'], function (ember, controller, view) {
    var Router = Ember.Router.extend({
        // These are properties of Ember.Router and should be defined here
        location: 'hash',
        enableLogging: true,

        root: Ember.State.extend({
            index: Ember.State.extend({
                route: '/',
                redirectsTo: 'news.index'
            }),
            news: Ember.State.extend({
                route: '/news',
                // showPost : Ember.State.transitionTo('post'),
                test: Ember.ViewState.extend({
                    route: '/test',
                    view: view.appendTo('body')
                }),
                index: Ember.ViewState.extend({
                    route: '/',
                    view: null
                })
            })
        })
    });
    var router = Router.create({});
    return router;
});

Let me know if that works.

Update

Actually you should not be using ViewState either. It's being depreciated. Follow the guide http://emberjs.com/guides/outlets/.

Upvotes: 4

Related Questions