javascript - Ember 路由器不更新 Chrome 和 Safari 中的 url

标签 javascript model-view-controller url routes ember.js

我已经在 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/

相关文章:

javascript - 如何使用/JS 更改图像来源

javascript - 在插入符位置 (IE) 将文本插入可编辑的 IFRAME

javascript - php 联系表单返回字段名称而不是值

javascript - Ajax 向 Controller 发送空字符串?

html - 输入类型 URL - 如果不包含 HTTP,则为 "Please enter a URL"

javascript - 如何替换 $(document).ready 函数?

php - 帮助 MVC 应用程序中的依赖注入(inject)

c# - 如何修复 HTTP 错误 500.22 - 内部服务器错误检测到不适用于集成托管管道模式的 ASP.NET 设置

javascript - 添加javascript变量来发送数据

java - 如何从url获取文本并将其放入textView中?