Ember.js 动态段错误 正如大多数冬眠者所知道的那样,我现在正在撕开我的头发,试图克服EmberJS的垂直墙,这样我就可以在它的顶峰到达天堂。p>

Ember.js 动态段错误 正如大多数冬眠者所知道的那样,我现在正在撕开我的头发,试图克服EmberJS的垂直墙,这样我就可以在它的顶峰到达天堂。p>,ember.js,ember-router,Ember.js,Ember Router,以下是我目前的情况: <script type="text/x-handlebars" data-template-name="dogs"> <h2> Pick a stack to view its cards </h2> <ul class="nav"> {{#each model}} <li>{{#linkTo 'dog' this}} {{name}} {{/linkTo}}</

以下是我目前的情况:

  <script type="text/x-handlebars" data-template-name="dogs">
    <h2> Pick a stack to view its cards </h2>
    <ul class="nav">
      {{#each model}}
      <li>{{#linkTo 'dog' this}} {{name}} {{/linkTo}}</li>
      {{/each}}
  </script>
因此,DogRoute的模型钩定义如下:

App.DogRoute = EmberRoute.Extend({
   model: function(params){
   return App.Dog.find(params.id);
   }

});
最后,模型本身非常基本:

App.Dog = DS.Model.extend({
    name = DS.attr('string')
});
在我的例子中,DS是一堆固定装置,所以我不想费心写下来。然而,这不起作用,我不知道为什么。以下是我访问dogs route时不断遇到的错误,我希望呈现一组指向dog的链接:

ember-…rc.5.js(第356行) 未捕获异常:传递的上下文对象多于路由的动态段:dog

有人能指出这里做错了什么吗


注意:如果我删除动态段,只需在我的狗把手内渲染一条狗路线(从把手上取下),则链接(狗名)不会被渲染。但是,我需要这些路线是动态段,而不仅仅是带有由余烬/车把自动生成的唯一ID的超链接

您的路由器声明错误。我应该更喜欢这样:

App.Router.map(function() {
  this.resource('dogs');
  this.resource('dog', {path: '/:dog_id'});
});
App.Router.map(function() {
  this.resource('dogs', function() {
    this.resource('dog', {path: '/:dog_id'});
  });
});

你的路由器声明是错误的。我应该更喜欢这样:

App.Router.map(function() {
  this.resource('dogs');
  this.resource('dog', {path: '/:dog_id'});
});
App.Router.map(function() {
  this.resource('dogs', function() {
    this.resource('dog', {path: '/:dog_id'});
  });
});
你得到的错误

余烬-…rc.5.js(第356行)未捕获异常:传递的上下文对象多于路由的动态段:dog

可能与您的路由映射有关。您应该这样定义路由:

App.Router.map(function() {
  this.resource('dogs');
  this.resource('dog', {path: '/:dog_id'});
});
App.Router.map(function() {
  this.resource('dogs', function() {
    this.resource('dog', {path: '/:dog_id'});
  });
});
此外,由于这是余烬的默认行为(请参见动态模型下):

您不需要显式定义它,因此可以删除它。 就我所见,其余的接缝都是正确的。 我也把一个工作,看看

希望有帮助。

您遇到的错误

余烬-…rc.5.js(第356行)未捕获异常:传递的上下文对象多于路由的动态段:dog

可能与您的路由映射有关。您应该这样定义路由:

App.Router.map(function() {
  this.resource('dogs');
  this.resource('dog', {path: '/:dog_id'});
});
App.Router.map(function() {
  this.resource('dogs', function() {
    this.resource('dog', {path: '/:dog_id'});
  });
});
此外,由于这是余烬的默认行为(请参见动态模型下):

您不需要显式定义它,因此可以删除它。 就我所见,其余的接缝都是正确的。 我也把一个工作,看看

希望能有帮助