Ember.js маршрутизация: как установить маршрут по умолчанию для немедленной визуализации?
Я уверен, что это станет ясным, когда я углублюсь в это, но пока неясно, как это сделать.
Я следил за информацией оэта полезная статья о маршрутизации но в примере не хватает важной части, т. е. как вы получаете «дом»? просматривать визуализацию сразу, не нажимая на кнопку «домой»; ссылка на сайт?
Я начал копаться в документах, чтобы попытаться разобраться в этом, но между тем мне кажется полезным ответить на вопрос для потомков.
Я играл с рабочим примером jsfiddle из приведенного выше вопроса.Вот и сравнивая с этим другим примером, я обнаружил, чтопохоже, что по умолчанию работает маршрутизация
Пока это все еще загадка.
Current code:
App.Router = Em.Router.extend({
enableLogging: true,
location: 'hash',
root: Em.State.extend({
// EVENTS
goHome: Ember.State.transitionTo('home'),
viewProfile: Ember.State.transitionTo('profile'),
// STATES
index: Em.State.extend({
route: "/",
redirectsTo: 'home'
}),
home: Em.State.extend({
route: '/home',
connectOutlets: function(router, context) {
var appController = router.get('applicationController');
appController.connectOutlet('home');
}
}),
// STATES
profile: Em.State.extend({
route: '/profile',
connectOutlets: function(router, context) {
var appController = router.get('applicationController');
appController.connectOutlet('profile');
}
}),
doOne: function() {
alert("eins");
}
})
});
UPDATE: Solution
Оказывается, причина, по которой пример, с которым я работал, не работал, заключалась в том, что он использовалEm.State.extend
скорее, чемEm.Route.extend
, Интересная часть состоит в том, что, когда я перехожу и заменяю их один за другим, пример не работает, пока я не изменю все из них.
Вот рабочаяпример:
App.Router = Em.Router.extend({
enableLogging: true,
location: 'hash',
root: Em.Route.extend({
// EVENTS
goHome: Ember.State.transitionTo('home'),
viewProfile: Ember.State.transitionTo('profile'),
// STATES
index: Em.Route.extend({
route: "/",
redirectsTo: 'home'
}),
home: Em.Route.extend({
route: '/home',
connectOutlets: function(router, context) {
var appController = router.get('applicationController');
appController.connectOutlet({name: 'home'});
}
}),
// STATES
profile: Em.Route.extend({
route: '/profile',
connectOutlets: function(router, context) {
var appController = router.get('applicationController');
appController.connectOutlet('profile');
}
}),
doOne: function() {
alert("eins");
}
})
});