Ember js, HTMLbars: 使用组件作为组件的参数
Ember js, HTMLbars: use component as param of a component
我想做这样的事情:
{{component-one title=(component-two paramX paramY)}}
组件助手在这里不起作用,我试过了
{{component-one title=(component 'component-two' params)}}
我也尝试让助手渲染我的组件,但失败了。似乎我找到的所有答案都像这个一样过时了
how can I invoke an ember component dynamically via a variable?
更具体地针对我的用例。我使用 tooltipster 并希望使用按钮初始化呈现工具提示。
{{#tool-tipster title=(my-comp params) ... }}
------更新--------
问题是,我最终需要一个 HTML 标题字符串,带有一个按钮和一个 data-ember-action。我不能使用包装器组件的 tpl。如果我扩展 tool-tipster 它看起来像这样:
export default TooltipsterComponent.extend({
title: 'title as html string'
//other tooltipster options go here with "optionname: optionvalue"
});
所以我已经想到了这样的事情:
title: function() {
//load component and return rendered component by hand
}}
但这让我回到了我无法手动渲染任何组件的问题。
感谢每一个输入!
干杯
π
-----更新------
gitbub 上的 altrim 为我的问题提供了确切的解决方案:https://github.com/altrim/tooltipster-content-component
使用 title=(component 'component-two' params)
是正确的想法,但我 非常确定 除了解析名称之外,你不能在组件助手中使用位置参数..所以你需要这样做:title=(component 'component-two' params=params)
当您想在 component-one
中渲染该组件时,您将需要像这样再次使用组件助手:{{component title}}
这至少是我让它工作的方式。我相当有信心这是 "ember" 的方式。
你可以这样做,但是你需要使用组件助手两次:
第一个通过组件:
{{wrap-component child=(component 'pass-component' name="blah")}}
接下来在 wrap-component.hbs
中调用组件:
{{component child}}
检查此 ember-twiddle。
我想做这样的事情:
{{component-one title=(component-two paramX paramY)}}
组件助手在这里不起作用,我试过了
{{component-one title=(component 'component-two' params)}}
我也尝试让助手渲染我的组件,但失败了。似乎我找到的所有答案都像这个一样过时了 how can I invoke an ember component dynamically via a variable?
更具体地针对我的用例。我使用 tooltipster 并希望使用按钮初始化呈现工具提示。
{{#tool-tipster title=(my-comp params) ... }}
------更新--------
问题是,我最终需要一个 HTML 标题字符串,带有一个按钮和一个 data-ember-action。我不能使用包装器组件的 tpl。如果我扩展 tool-tipster 它看起来像这样:
export default TooltipsterComponent.extend({
title: 'title as html string'
//other tooltipster options go here with "optionname: optionvalue"
});
所以我已经想到了这样的事情:
title: function() {
//load component and return rendered component by hand
}}
但这让我回到了我无法手动渲染任何组件的问题。
感谢每一个输入!
干杯 π
-----更新------
gitbub 上的 altrim 为我的问题提供了确切的解决方案:https://github.com/altrim/tooltipster-content-component
使用 title=(component 'component-two' params)
是正确的想法,但我 非常确定 除了解析名称之外,你不能在组件助手中使用位置参数..所以你需要这样做:title=(component 'component-two' params=params)
当您想在 component-one
中渲染该组件时,您将需要像这样再次使用组件助手:{{component title}}
这至少是我让它工作的方式。我相当有信心这是 "ember" 的方式。
你可以这样做,但是你需要使用组件助手两次:
第一个通过组件:
{{wrap-component child=(component 'pass-component' name="blah")}}
接下来在 wrap-component.hbs
中调用组件:
{{component child}}
检查此 ember-twiddle。