我正在开发一个ember 1.13项目,我希望将父组件传递给* .hbs文件中的子组件,如下所示:
{{#parent}}
{{child parent=<what here?>}}
{{/parent}}
我尝试使用{{#parent as |parent|}}
,但这不起作用。添加:
get parent(){ return this; }
组件定义也不起作用?我怎么能这样做?
修改
父母的模板如下:
<ul>
{{yield}}
</ul>
如果我写:
<ul>
{{child parent=this}}
{{yield}}
</ul>
作品。
看来我在这里做错了什么,常规方式应该是什么?我可以让parent
至少听取child
??
编辑#2
如果我写:
<!-- not within the "parent" component's template -->
{{#parent}}
{{child action=something}}
{{/parent}}
我收到错误,该操作未在包含组件中定义。将{{child action=something}}
移动到parent's
模板({{yield}}
之前)它的工作原理。但我想将上面的代码包含在任何其他模板中,我该怎么做?
编辑#3
即使提供的答案更好更清晰,我也可以设法使用子组件的targetObject
属性来运行它,如下所示:
targetObject: Em.computed.alias('parentView');
答案 0 :(得分:1)
父母需要自我屈服:
<ul>
{{yield this}}
</ul>
使用它时:
{{#parent as |p|}}
{{child parent=p}}
{{/parent}}