提问者:小点点

如何从另一个渲染组件/助手?


我有渲染组件(源),用于从控制器字段渲染组件/助手。它在12月1.9日运行良好,但在更新到12月1日之后,我发现API发生了变化。更新代码后,我恢复了简单的情况(如从某些属性按名称渲染视图)。但大部分功能仍然损坏。

我很感兴趣在哪里可以读到更多关于这样的事情

>

  • env(在组件/助手内部实现中使用)

    Morph(我知道它是html栏的一部分,但我对更多留档感兴趣)

    有人能分享一些创建这样的助手的经验吗?或者在这种情况下找到解决方案的方法?(我的意思是这件事没有完全记录)

    附言:我从1.11就知道组件助手——但它不允许渲染助手(带有参数),使用它我应该在模板中定义所有属性。当组件/助手的名称是动态的时——我应该传递不同的参数/属性。

    提前感谢

    P. P.S.

    我想使用我的助手恢复一些功能示例(您可以在助手页面上找到更多示例和动机——我只想注意我的助手和内置组件助手之间的区别):

    {{#render-component componentName _param='btn-component' action="addSection"}}
    {{render-component 'pluralize-component' ___params=hash}} // hash = { count:ungrouped.content.meta.total, single:"Object"}
    {{#render-component 'componentName' _param=paramName someOption=someOptionValue}}
    

  • 共3个答案

    匿名用户

    您在这里有很多问题,但要回答您标题中的问题:Ember 1.11引入了允许您动态渲染组件的组件助手。

    componentName: 'someComponentName'
    
    ...
    
    {{component componentName param=value someAction='someMapping'}}
    

    匿名用户

    本文包含可能用于实现我认为您所追求的内容的大部分信息(与标准组件帮助程序相比)。

    他们建议的一个值得注意的开箱即用的解决方案是使用(几乎已弃用)动态组件插件。

    {{dynamic-component
      type=theType
      boundProperty=foo
      staticProperty="bar"
      onFoo="fooTriggered"
    }}
    

    希望这(以及文章中的其他建议)能引导您找到解决方案。

    匿名用户

    我一直在寻找这个问题的答案,最终我自己找到了一个解决方案。

    我的场景是,我想将一个组件传递给另一个组件并在该组件中呈现它,这听起来像是这个问题的目标。

    对于那些不清楚{{组件}}助手是如何工作的:

    使用它来渲染另一个组件。
    {{组件"组件名"参数1="值"参数2="值"}}

    这将与以下方式完全相同:
    {{组件名参数1="value"参数2="value"}}

    对于我的场景,我这样做:

    在调用第一个组件的模板中:
    {{my-comp-1 comp=(组件my-comp-2参数1=value参数2=value)其他参数=value}}

    my-comp-1的模板中,使用用于组件的属性:
    {{组件comp}}

    这就是我需要做的。

    这在Ember 2.7.0中完美运行。