0

好的,伙计们-它真的不应该比这更简单。我定义了一个名为 about 的路由,并在我的模板中添加了一个 linkTo about,通过插座运行它,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' 

这是我的余烬

应用程序 = 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');
});

我希望定义两条路线与定义一条路线没有太大区别,但我似乎不明白一些事情。有人可以指出我的理解错误吗?谢谢!

4

2 回答 2

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'
于 2013-06-14T20:25:56.163 回答
-1

您需要以如下形式定义路由:

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

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

于 2013-06-14T20:18:34.110 回答