0
//index.html

<html>
    <head>
        <title>An Ember dice roller</title>
    </head>

    <body>

        <script type="text/javascript" src="C:/Users/Guest/Downloads/ember/starter-kit-1.0.0/js/libs/jquery-1.9.1.js"></script>
        <script type="text/javascript" src="C:/Users/Guest/Downloads/ember/starter-kit-1.0.0/js/libs/handlebars-1.0.0.js"></script>
        <script type="text/javascript" src="C:/Users/Guest/Downloads/ember/starter-kit-1.0.0/js/libs/ember-1.0.0.js"></script>
        <script type="text/javascript" src="C:/Users/Guest/Downloads/ember/starter-kit-1.0.0/js/app.js"></script>


    <script type="text/x-handlebars" >
      <h1>Dice Roller</h1>

      {{#link-to 'roll'}}Click here{{/link-to}}
      {{#link-to 'index'}}Go to index{{/link-to}}

      {{outlet}}
    </script>


    <script type="text/x-handlebars" id="roll">
           Hi!
    </script>
    <script type="text/x-handlebars" id="index">
    <p>
        Our content goes here
    </p>
    </script>



    </body>
</html>

//app.js

var Roller = Ember.Application.create({
    LOG_TRANSITIONS: true,
    LOG_BINDINGS: true,
    LOG_VIEW_LOOKUPS: true,
    LOG_STACKTRACE_ON_DEPRECATION: true,
    LOG_VERSION: true,
    debugMode: true
});

Roller.Router.map(function () { 
    this.resource('index');
    this.resource('roll');
});

这段代码有什么问题?我收到以下错误。我的 index.html 页面没有加载任何内容。我是 ember.js 的初学者。有人可以帮帮我吗?断言失败:URL '/' 确实匹配应用程序中的任何路由

4

1 回答 1

0

默认情况下,ember 创建如下内容:

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

但是您的路由器正在使用以下命令覆盖索引路由:

this.resource('index');

因此,为了能够呈现索引模板,您需要http://yourhost/#/index使用http://yourhost/.

如果您更新路由器映射,并删除the this.resource('index')所有将起作用:

Roller.Router.map(function () { 
    this.resource('roll');
});

这是一个更新的 jsbin,这个工作http://jsbin.com/ucanam/1499/edit

于 2013-10-15T16:10:07.783 回答