Ember:提供嵌套路由的模板名称

时间:2013-05-16 19:10:25

标签: javascript ember.js

由于我目前选择的构建工具,我无法使用斜杠命名模板(如ads/index)。这有望很快改变,但我对我的应用程序的问题感兴趣。

这是我的路线:

App.Router.map ->
  @resource 'ads', ->
    @route 'index', path: '/'
    @route 'create'

我还定义了App.AdsRouteApp.AdsController(他们的内容很可能无关紧要,目前他们正在获取ads.index的广告数据。

我的ads模板仅包含outlet

= outline

(这是Emblem)

最后,我有一个ads_indexads_create模板,其中包含一些有意义的内容。现在,我显然希望他们分别在访问#/ads#/ads/create时进行渲染。

所以,首先我定义

AdsView: Ember.View.extend
    templateName: 'ads_index'

现在,当我访问#/ads时,它会显示我需要的内容。但是当我点击指向ads.create的链接时,它仍会显示相同的广告列表,但链接会获得“有效”类。

我认为AdsView可用作整个ads资源的通配符视图。

所以,我重命名了所有的东西:AdsRoute - > AdsIndexRoute,AdsController - > AdsIndexController,AdsView - > AdsIndexView。

现在页面为空。我看到路由器和控制器仍然正在发送正确的AJAX请求。但视图不呈现。怎么了?

2 个答案:

答案 0 :(得分:0)

如果您使用log帮助程序并记录this

{{log this}}

您是否能够查看传递给视图的模型的属性?将它放在jsFiddle中可能会有所帮助,因此我们可以调试它。

答案 1 :(得分:0)

愚蠢的我。这是“ads.emblem”中的拼写错误 - 大纲而不是插座。