emberjs - 有条件地在更大的模板中渲染模板

时间:2013-11-26 15:33:53

标签: javascript templates ember.js routes render

Ember Community Assemble!

我想在application.hbs侧边栏中有条件地{{render''}}小模板,但该侧边栏的内容取决于我们路由到哪个模型的hbs。例如,“许可”侧边栏的内容与“个人资料”侧边栏的内容不同。

现在,无论选择何种model.hbs,我都只能一次呈现所有侧边栏内容。

<!-- Right Sidebar in application.hbs START -->
    <div id="sidebar-wrapper" class="super-super-float-right-col">
      <div id="sidebar-wrapper" class="super-float-right-col">
        <div id="sidebar-wrapper" class="float-right-col">
          {{render 'applicant'}} <!-- only available to '/person/#' -->
          {{render 'location'}} <!--  only available to '/permit/#' -->
        </div>
      </div>
    </div>
<!-- Right Sidebar END -->

    <div class="The rest of the content">
      {{outlet}} <!--inserts the rest of the html into the main content container -->
    </div>

我不希望“申请人”和“位置”同时在上面同时呈现,我希望“申请人”内部的数据根据​​“人”的ID#进行更改。同样的关系适用于'permit.hbs'

内的'location'
VpcYeoman.PermitRoute = Ember.Route.extend({
    renderTemplate: function() {
        this.render({ render:'location'});
    }
});

Application_route.js目前为空白

1 个答案:

答案 0 :(得分:2)

尽管1.2.0引入了在{{view}}中使用模板名称属性的功能,但它还不适用于{{render}}

因此,您可以选择使用{{view}},或者在模板中使用一系列{{#if}},或者使用组件/视图来选择要渲染的内容(一种方法可以执行此操作)将为每个渲染设置一个模板,以及一个将templateName属性绑定到parentController属性的选择视图,该属性决定应该显示哪个属性。

Here是我曾经尝试过的一个jsbin。