もっと深く掘り下げていくにつれてこれが明確になると確信していますが、現時点ではこれをどうやって行うのかは分かりません。Ember.jsルーティング:どのようにしてすぐにレンダリングするデフォルトルートを設定しますか?
私はthis helpful SO article about routingの情報に従っていましたが、この例では欠けている重要な部分があります。つまり、「ホーム」ビューを「ホーム」リンクをクリックすることなくすぐにレンダリングするにはどうすればいいですか?
私はこれを理解しようとするためにドキュメントを掘り下げ始めましたが、一方で、後世のために答えたことは有益な質問のようです。
私は上記の質問hereから作業jsfiddle例で遊んと、この他の例と比較して、私はseems to have the default routing working
はこれまでのところ、それはまだ謎だということが分かってきました。
現在のコード:
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:ソリューション
それはそれはむしろEm.State.extend
を使用していたので、私が働いていた例が働いていなかった理由があったことが判明Em.Route.extend
より。興味深いのは、私が一歩一歩進んでいくうちに、私が一歩一歩進んでいくうちに、私はそれらをすべて変更するまでその例が機能しないということです。ここで
は作業exampleです:
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");
}
})
});
感謝を。上記の例との違いが何であるかを理解するまでにはしばらく時間がかかりましたが、最終的にはそれを理解しました。 Em.Route.extendではなくEm.State.extendを使用していたので、私が与えた例はうまくいきませんでした。 – radixhound