1

我想要这样的事情:

{{component-one title=(component-two paramX paramY)}}

组件助手在这里不起作用,我试过这个

{{component-one title=(component 'component-two' params)}}

我还尝试制作一个助手来渲染我的组件,但失败了。似乎我找到的所有答案都像这样过时了 如何通过变量动态调用 ember 组件?

更具体地针对我的用例。我使用 tooltipster 并希望使用按钮初始化来呈现工具提示。

{{#tool-tipster title=(my-comp params) ... }}

- - - 更新 - - - - -

问题是,我最终需要一个带有按钮和数据余烬动作的标题的 HTML 字符串。我不能使用包装组件的 tpl。如果我扩展工具提示器,它看起来像这样:

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

4

2 回答 2

2

你可以这样做,但你需要使用组件助手两次:

首先传递组件:

{{wrap-component child=(component 'pass-component' name="blah")}}

然后在里面wrap-component.hbs调用组件:

{{component child}}

签出这个ember-twiddle

于 2016-06-01T19:45:42.427 回答
1

使用title=(component 'component-two' params)是正确的想法,但我很确定你不能在组件助手中使用位置参数,而不是解析名称..所以你需要这样做:title=(component 'component-two' params=params)

当您想在内部渲染该组件时,component-one您需要再次使用组件助手,如下所示: {{component title}}

这至少是我让它工作的方式。我相当有信心这是“余烬”的方式。

于 2016-06-01T13:59:37.090 回答