我的工作在餘燼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');
'{{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