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: