Je suis sûr que cela deviendra clair car je creuse de plus en plus, mais pour l'instant, ce n'est pas évident comment faire cela arriver.
Je suivais l'info sur Cela a été utile que l'article sur le routage mais Il y a une pièce importante manquante de l'exemple, c'est-à-dire comment obtenez-vous la vue "Accueil" pour rendant immédiatement sans avoir à cliquer sur le lien "Accueil"? P>
J'ai commencé à creuser dans les documents Essayez de donner un sens à cela, mais il semble qu'après une question utile à avoir répondu à la postérité. p>
Je joue avec l'exemple de Jsfiddle de travail de la question ci-dessus ici et comparer avec cet autre exemple, j'ai trouvé que semble avoir le routage par défaut qui fonctionne p>
jusqu'à présent, c'est toujours un mystère. P>
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");
}
})
});
3 Réponses :
Vous pouvez faire une redirection de l'index à la route d'origine:
p>
<script type="text/x-handlebars" data-template-name="application">
{{view App.NavView controllerBinding="controller.controllers.navController"}}
<hr />
<div class="content">
{{outlet}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="nav">
<h1>navigation:</h1>
<button {{action goHome}}>home</button>
<button {{action goProfile}}>profile</buton>
</script>
<script type="text/x-handlebars" data-template-name="home">
<h1>Home...</h1>
</script>
<script type="text/x-handlebars" data-template-name="profile">
<h1>Profile...</h1>
</script>
Merci pour l'exemple de travail. Il m'a fallu un moment pour savoir quelle est la différence de mon exemple ci-dessus, mais je l'ai finalement compris. L'exemple que j'ai donné n'a pas fonctionné car il utilisait em.state.extend code> plutôt que em.Route.extend code>
Il semble que cela soit fait différemment maintenant. J'ai eu du succès avec cette façon de le faire:
App = Ember.Application.create();
App.Router.map(function() {
// 'index' route is default
this.resource('dashboard');
});
App.IndexRoute = Ember.Route.extend({
redirect: function() {
// this redirects / to /dashboard
this.transitionTo('dashboard');
}
});
App.DashboardRoute = Ember.Route.extend({
});
avec Ember CLI, vous pouvez mettre la redirection dans Index.js dans votre racine du répertoire des itinéraires: