简单的余烬路由 - 如何定义多条路由?

时间:2013-06-14 20:06:51

标签: ember.js

好的家伙 - 真的不应该比这更简单。我定义了一个名为about的路由,并在我的模板中添加了一个linkTo,在插座中运行并且ember按预期工作。

然后我添加了一个名为foobars的路由,对它做了同样的事情并得到了一个未被捕获的错误:

Uncaught Error: assertion failed: The attempt to linkTo route 'foobars' failed. The router did not find 'foobars' in its possible routes: 'about', 'index' 

这是我的余烬

App = Ember.Application.create()

App.Router.map(function(){
    this.resource('about');
    this.resource('foobars');
});

我的简单html

<body>
<h1>ember</h1>

<script type="text/x-handlebars">
  <h2>application template</h2>
  <a>{{#linkTo 'about'}} about {{/linkTo}}</a>
  <a>{{#linkTo 'foobars'}} foobars {{/linkTo}}</a>
  {{ outlet }}
</script>

<script type="text/x-handlebars" id="about">
  <h2>about template</h2>
</script>

<script type="text/x-handlebars" id="foobars">
  <h2>foobars template</h2>
</script>

就像我说的,它适用于about模板,所以我知道我的配置没问题。我也试过单独添加它们,如下:

App.Router.map(function(){
    this.resource('about');
});

App.Router.map(function(){
    this.resource('foobars');
});

我希望定义两条路线与定义一条路线没有太大区别,但我似乎并不理解某些东西。有人能指出我理解的错误吗?谢谢!

2 个答案:

答案 0 :(得分:0)

我认为您在重新加载页面之前没有保存文件。我尝试了你的例子,它对我很有用。

但是当我评论foobars路线时:

App = Ember.Application.create();

App.Router.map(function() {
  this.resource("about");
  //this.resource("foobars");
});

我的控制台中出现了同样的错误:

Error: assertion failed: The attempt to linkTo route 'foobars' failed. The router did not find 'foobars' in its possible routes: 'about', 'index'

答案 1 :(得分:-1)

您需要在表单中定义路线:

App.FoobarsRoute = Ember.Route.extend({
    model: function() {
        return App.Foobars.find();
    }
});

这通常会放在自己的文件中:/routes/foobars_route.js