初学者在Emberjs查询

时间:2013-10-15 15:24:36

标签: ember.js

//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'/'确实匹配应用程序中的任何路由

1 个答案:

答案 0 :(得分: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