父模板不呈现

时间:2013-10-14 22:12:53

标签: javascript ember.js handlebars.js

我想建立一个您从列表中选择大学的网站,然后选择该大学旁边的专业列表,然后在选择专业后,旁边的两个科目列表显示出来。但是我不知道为什么在选择专业后,URL更改但专业列表消失(以及主题列表)。我的代码在这里:http://jsbin.com/IPadIsu/1/edit。因为网址是正确的,刷新页面后,一切都正确呈现。对我来说有什么奇怪的:我从Ember调试器或控制台中没有错误。

编辑: 请始终从大学列表中选择最佳选项,因为没有为其他大学定义科目列表。

1 个答案:

答案 0 :(得分:2)

我理解Ember有一点学习曲线,让我给你一些提示。

 App.ApplicationRoute = Ember.Route.extend({
   renderTemplate: function() {
    // Render default outlet   
    this.render();
    // render extra outlets
    this.render("navbar", {
        outlet: "navbar",
        into: "application"
    });
   }
 });

 <script type="text/x-handlebars">
<!-- Navigation menu top bar -->
{{outlet "navbar"}}
{{outlet}}
 </script>

您手动执行所有渲染并设置渲染。这为Ember增加了很大的复杂性。特别是因为如果你进入一个出口,你将摧毁任何也存在于那个指定出口的出口。

在您的应用程序路由上,您可以完全删除renderTemplate方法,并在应用程序模板中使用partial(特别是因为您甚至没有指定在渲染到导航栏模板时使用的其他控制器,并且它们使用相同的控制器)。

 App.ApplicationRoute = Ember.Route.extend();

 <script type="text/x-handlebars">
<!-- Navigation menu top bar -->
{{partial "navbar"}}
{{outlet}}
 </script>

还有一些其他手动渲染动作可以被抛出。我已经更新了你的例子:

http://jsbin.com/IPadIsu/17/edit