错误:断言失败:网址' /'与您的申请中的任何路线都不匹配

时间:2014-06-23 03:36:42

标签: javascript html web ember.js routes

我正在测试Ember.js框架,当我尝试加载页面时遇到问题。目前我在一个页面上有两个链接,我只想弄清楚如何在{{outlet}}中显示其中一条路线。每当我尝试加载页面时,我在控制台中出现此错误 - 未捕获错误:断言失败:错误:断言失败:URL' /'与您申请中的任何路线都不匹配

这是我的HTML文件

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <link rel ="stylesheet" href="css/normalize.css">
    <link rel ="stylesheet" href="css/style.css">
    <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.1.0/handlebars.js"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.5.1/ember.js"></script>
    <script src="js/app.js"></script>
</head>
<body>

    <script type="text/x-handlebars" data-template-name="application">
        <div>
            {{#link-to 'index'}} Home {{/link-to}}
            {{#link-to 'history'}} History {{/link-to}}
        </div>

        <div>
            {{outlet}}
        </div>
    </script>

    <script type="text/x-handlebars" data-template-name="index">
        <h1> Index Route Test</h1>
    </script>

    <script type="text/x-handlebars" data-template-name="history">
        <h1> History Route Test</h1>
    </script>

</body>
</html>

这是我的JS文件

var App = Ember.Application.create({
    LOG_TRANSITIONS:true
});

App.Router.map(function(){
    this.route('index');
    this.route('history');
});

App.IndexRoute=Ember.Route.Extend({

});

1 个答案:

答案 0 :(得分:3)

Ember自动将/路由到您的'index'模板和相应的控制器,您甚至无需在路由器中明确命名它,因此您根本不必包含索引路由。

如果你想保留它,你可以使用:

App.Router.map(function(){
    this.route('index', { path: '/' });
    this.route('history');
});

有关为何Ember已将/路由至'index' here的更多信息。