我已经在 ember.js 中实现了跟随。代码工作到一定程度。
当我在根 url 处输入应用程序时,URL 不会更改,即“/”,它应该转到 tasks.index 并通过显示 #/tasks 反射(reflect) url 中的更改。
但是当我转到“#/tasks”并显示消息“hello from index view”时,它的行为是正确的。
我使用的是 Google Chrome 版本 19 和 ember.js edge。
非常感谢任何帮助。
App = Em.Application.create({});
App.IndexView = Em.View.extend({
template: Em.Handlebars.compile(
'hello world from index'
)
});
App.ShowView = Em.View.extend({
template: Em.Handlebars.compile(
'hello world from show'
)
});
App.Router = Ember.Router.extend({
location: 'hash',
rootElement: "#my-app",
enableLogging: true,
root: Ember.State.extend({
index: Ember.State.extend({
route: '/',
redirectsTo: 'tasks.index'
}),
tasks: Ember.State.extend({
route: '/tasks',
index: Ember.ViewState.extend({
route: '/',
view: App.IndexView
}),
show: Ember.ViewState.extend({
route: '/show',
view: App.ShowView
})
})
})
});
App.initialize();
最佳答案
查看这个 jsFiddle:
代码-> http://jsfiddle.net/ud3323/WLcRQ/
调试-> http://jsfiddle.net/ud3323/WLcRQ/show/
您需要做的就是将 redirectsTo: 'tasks.index'
更改为 redirectsTo: 'tasks'
。
如果目标州已定义起始路线(正如您所做的那样),则在使用 redirectsTo
时无需指定目标州的起始路线。
关于javascript - Ember 路由器不更新 Chrome 和 Safari 中的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823053/