2015-10-30 69 views
0

如何添加對自定義Ember組件的支持以添加動態屬性和動作? 我有我的自定義組件Ember組件和迭代過程中的動態屬性

{{my-radiobutton name='myName' value='RadioButton1' selection=this.selectedRadio}} 

現在我要遍歷API響應,並在我的模板動態屬性以及下面行動的支持;

{{#each model.myApi as |myApi|}} 
{{#if someCondition}} 
{{my-radiobutton name='myName_{{myApi.someId}}' value='someAction_{{myApi.someId}}' selection=this.selectedRadio {{action 'actionClicked'}}}} 
{{else}} 
{{my-radiobutton name='myName_{{myApi.someId}}' value='someAction_{{myApi.someId}}' selection=this.selectedRadio {{action 'actionClicked'}}}} 
{{/if}} 
{{/each}} 

有沒有可能這樣做?

PS:我沒有在自定義組件MY-單選按鈕控制,因爲它是一種常見的/外部的,所以我會更喜歡在模板中任何東西,或我的控制器

+0

我認爲你可以通過組件定義的方式來完成它。通常這個定義很簡單,你可以製作一個自定義版本。它應該是一個對象,以屬性作爲屬性,我不記得確切。 –

+0

我的一個簡單問題是,如何在我的自定義組件中添加動態屬性值,因爲我使用每個 – testndtv

+0

來遍歷api resposne ....您只需在它上面找到元素和setAttribute()。 http://www.w3schools.com/jsref/met_element_setattribute.asp –

回答

1

你可能會尋找concat helper

{{#each model.myApi as |myApi|}} 
    {{#if someCondition}} 
    {{my-radiobutton name=(concat "myName_" myApi.someId) value=(concat "someAction_" myApi.someId) selection=this.selectedRadio {{action 'actionClicked'}}}} 
    {{else}} 
    {{my-radiobutton name=(concat "myName_" myApi.someId) value=(concat"someAction_" myApi.someId) selection=this.selectedRadio {{action 'actionClicked'}}}} 
    {{/if}} 
{{/each}} 
+0

Thx a很多...默認情況下,在灰燼中包含concat助手,還是我們必須手動添加? – testndtv

+0

還有一件事......是否可以將自定義屬性添加到我的自定義組件,如data-somedata = myApi.someId並在控制器中訪問它? – testndtv

+0

again ...只是爲了添加..我無權修改組件本身 – testndtv