我有渲染组件(源),用于从控制器字段渲染组件/助手。它在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}}
您在这里有很多问题,但要回答您标题中的问题: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中完美运行。