Javascript 模板仅在刷新页面后呈现
我想要一份大学的名单,点击其中一所之后,在这个名单旁边应该会显示专业名单。单击其中一个专业后,在这两个科目列表旁边显示。然而,我想我在路由上做了些错事。点击其中一所大学后,URL会发生变化,但专业列表不会显示出来。但是在刷新页面(使用此url)后,它工作得非常好。代码如下:Javascript 模板仅在刷新页面后呈现,javascript,ember.js,handlebars.js,Javascript,Ember.js,Handlebars.js,我想要一份大学的名单,点击其中一所之后,在这个名单旁边应该会显示专业名单。单击其中一个专业后,在这两个科目列表旁边显示。然而,我想我在路由上做了些错事。点击其中一所大学后,URL会发生变化,但专业列表不会显示出来。但是在刷新页面(使用此url)后,它工作得非常好。代码如下: 就像其他人说的,你的jsbin不起作用。很明显,真正的问题在于你的链接。如果它在刷新时起作用,但在单击链接时不起作用,那么区别在于模型来自何处。刷新时,模型来自模型挂钩。使用链接导航时,模型由link to语句提供 在你的情
就像其他人说的,你的jsbin不起作用。很明显,真正的问题在于你的链接。如果它在刷新时起作用,但在单击链接时不起作用,那么区别在于模型来自何处。刷新时,模型来自模型挂钩。使用链接导航时,模型由link to语句提供 在你的情况下,如果你刷新页面,你会从你的大学模型钩子中得到某所大学的专业。如果从页面中单击大学,则大学模型将发送到大学资源,而不是该大学的专业 因此,要么这需要说是专业
{{#each}}
<li {{bindAttr id="id"}}>
<div class="list-element-title">
{{#link-to 'university' this.majors}}{{name}}{{/link-to}}
</div>
</li>
{{/each}}
我没有查看您的其余代码,但请确保您通过链接发送的模型与通过模型挂钩获得的模型相同。您的JSBin根本没有为我运行。@JeremyGreen它对我不起作用,因此,我只是替换了依赖项的相对路径,但它仍然有点断裂……好吧,在我将其更改为this.majors后,它可以在单击时工作,但链接类似于/univ/undefined。所以现在刷新后它就不起作用了。是的,我想睡觉后,你真的需要把linkto和model钩子都改成university(因为serialize方法构建url,从模型中获取id)。因此,您需要更新模板,以反映university对象就是对象(也就是说,它不是数组),并且您需要在专业上循环,而不仅仅是控制器。我更改了“university”模板。我用了{{{{{{{{{{{}而不是{{{{{{{{{{{}每个专业}}}来代替{{{{{{{{{{}每个专业}}。很好用。
{{#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;
}
});