Emberjs通参考孩子
问题描述:
我的工作在余烬1.13项目中,我想通过父组件为它的子在* .hbs文件中像这样:Emberjs通参考孩子
{{#parent}}
{{child parent=<what here?>}}
{{/parent}}
我试图使用{{#parent as |parent|}}
但这不起作用。增加:
get parent(){ return this; }
给组件定义不起作用吗?我怎样才能做到这一点?
编辑
父模板的样子:
<ul>
{{yield}}
</ul>
如果我写:
<ul>
{{child parent=this}}
{{yield}}
</ul>
作品。
看来我在这里做错了什么,应该怎样规律?我是否可以让parent
至少收听child
的活动??
EDIT#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');
答
家长的需求产生自己:
<ul>
{{yield this}}
</ul>
而使用它:
{{#parent as |p|}}
{{child parent=p}}
{{/parent}}
+0
谢谢你的工作!我同时我找到了另一个解决方案......它在更新中...... – philipp
'{{child parent = this}}'应该有效。但为什么你需要这个? – ykaragol
我想用一个应该触发的回调来配置'child',如果点击。 – philipp
那么,我宁愿将操作和数据交给子组件,而不是访问父组件。举个例子,[this](https://github.com/tubitak-bilgem-yte/ember-contextual-table/blob/master/addon/templates/dt-selection-column.hbs#L2)会产生一个动作,一些数据给儿童组件。 – ykaragol