Eminim ki daha derine indiğimde bu netleşecektir, ancak şimdilik bunun nasıl gerçekleşeceği açık değildir.Ember.js yönlendirmesi: Hemen oluşturulmak üzere varsayılan bir yol nasıl belirlersiniz?
this helpful SO article about routing üzerindeki bilgileri takip ediyordum, ancak örnekte önemli bir eksiklik var, yani 'ev' bağlantısını tıklamak zorunda kalmadan 'ev' görünümünü hemen nasıl alacaksınız?
Bunu anlamayı denemek için dokümanlar kazmaya başladım, ancak bu arada, posterity için yanıtlanmış yararlı bir soru gibi görünüyor.
Yukarıdaki soruya here çalışan jsfiddle örnekle oynayan ve bu diğer örnekle karşılaştırılarak ben seems to have the default routing working
Şimdiye kadar hala bir sır olduğunu tespit ettik.
Güncel kodu:
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");
}
})
});
GÜNCELLEME: oldukça Em.State.extend
kullanıyordum çünkü Çözüm
O Yolunda gitmeyen ile çalışıyordu nedeni örneğiydi çıkıyor Em.Route.extend
'dan. İlginç olan kısım, adım adım ilerledikçe ve bunları teker teker değiştirdiğimde, bunların hepsini değiştirene kadar örnek çalışmaz. İşte
çalışma example geçerli:
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");
}
})
});
Teşekkür çalışma örneğin. Yukarıdaki örneklemden farkın ne olduğunu anlamak bana biraz zaman aldı ama sonunda anladım. Verdiğim örnek, "Em.Route.extend" yerine "Em.State.extend" kullandığından çalışmadı – radixhound