0

我想要大学列表,点击其中一所后,应该在此列表旁边显示专业列表。单击其中一个专业后,在这两个列表旁边显示主题列表。但是我想我在路由中做错了什么。单击其中一所大学 URL 更改后,专业列表未显示。但是在刷新页面后(使用这个 url)它工作得很好。这是代码:http: //jsbin.com/AQAref/1/edit

4

1 回答 1

2

就像其他人说的那样,你的 jsbin 不起作用。很明显,真正的问题在于您的链接。如果它在您刷新时有效,但在您单击链接时无效,那么区别在于模型的来源。刷新时,模型来自模型挂钩。当您使用链接导航时,模型由链接到语句提供。

在您的情况下,如果您刷新页面,您会从大学模型挂钩中获得特定大学的专业。如果您从页面单击大学,则大学模型将发送到大学资源,而不是该大学的专业。

所以要么这需要说专业

{{#each}}
   <li {{bindAttr id="id"}}>
     <div class="list-element-title">
        {{#link-to 'university' this.majors}}{{name}}{{/link-to}}
     </div>
   </li>
{{/each}}

代替

{{#each}}
   <li {{bindAttr id="id"}}>
     <div class="list-element-title">
        {{#link-to 'university' this}}{{name}}{{/link-to}}
     </div>
   </li>
{{/each}}

或者您的路线需要返回大学,但我猜路线模型挂钩是正确的,因为您说它可以刷新。

 App.UniversityRoute = Ember.Route.extend({
  model: function(params) {
    var majors = universities.findBy('id', params.univ_id).majors;
    return majors;
  }
 });

我没有查看您的其余代码,但请确保您通过链接发送相同的模型,就像您通过模型挂钩获得模型时一样。

于 2013-10-14T04:25:06.003 回答