【问题标题】:dynamic outlet name in ember jsember js中的动态出口名称
【发布时间】:2025-12-10 17:45:01
【问题描述】:

要求:将有几个按钮,并且在单击每个按钮时,立即出口将呈现一个视图。 (不是页面中的其他网点)

假设我在#each 中创建网点。

{{#each item in model}}
<#link-to 'passenger' item.id>Open Corresponding Outlet </link-to>
{{outlet item.id}}
{{/each}}

从后面我正在渲染出口:

model: function (params) {
    return [
              { id: params.passenger_id}
           ]
    },

renderTemplate: function () {
     this.render({ outlet: this.get('controller.model')[0].id });
    },

这行不通。

谁能帮我做到这一点?

【问题讨论】:

    标签: ember.js outlet


    【解决方案1】:

    您不能创建动态命名的网点,它会破坏代表您正在查看的页面的 url 核心成员大力宣扬的概念。

    你应该只使用渲染助手在模板中渲染,然后使用

    {{#each item in model}}
      {{render 'something' item}} 
    {{/each}}
    

    在某些控制器/模板中,您可以添加额外的逻辑来决定您希望它如何交互。

    此外,您可以在您的乘客路线下添加另一个资源,并广告一个在点击时托管该信息的插座。

    【讨论】:

      【解决方案2】:

      不确定您是否仍在寻找解决方案,正如@kinpin2k 所说,您不能使用动态插座,但也许动态部分会有所帮助。

      像这样:

      {{partial someTemplateName}}
      

      someTemplateName 可以是控制器中的任何计算属性。如果该属性返回 falsy,则不会显示任何内容。

      这是参考:http://emberjs.com/api/classes/Ember.Handlebars.helpers.html#toc_bound-template-names

      【讨论】:

        最近更新 更多