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