1

我需要连接几个变量来创建一个属性,例如,我有一组RadioButtons可能会在页面上出现多次 - 动态地,首先视图可以显示多次,另一件事是它们被放置在each循环中所以它们可以在每次视图中出现多次。

所以我不能使用静态name属性,但如果有几个部分,我应该连接,例如结果应该如下所示:

<input name="view1_row0" value="0"> No
<input name="view1_row0" value="1"> Yes

<!-- next row in view1 -->
<input name="view1_row1" value="0"> No
<input name="view1_row1" value="1"> Yes

<!-- next row in view2 -->
<input name="view2_row0" value="0"> No
<input name="view2_row0" value="1"> Yes

等等...我可以轻松地获取父视图的 ID 和/或循环索引,view._parentView.contentIndex但我不知道如何将它们连接到一个绑定中,伪代码如下所示:

{{view Ember.RadioButton nameBinding=view.parentView.elementId + "_row" + view._parentView.contentIndex selectionBinding="someVal" value="0"}}

但它当然会在+标志处引发错误。有什么办法可以解决吗?

4

1 回答 1

2

为什么不将它们作为单独的绑定传递并在自定义实现中连接它们Ember.RadioButton

{{view App.MyRadioButton elementIdBinding="view.parentView.elementId" contentIndexBinding="view._parentView.contentIndex" selectionBinding="someVal" value="0"}}

然后在App.MyRadioButton(扩展Ember.RadioButton

name: function() {
   return this.get('elementId') + '_row' + this.get('contentIndex');
}.property('elementId', 'contentIndex')

或者,您也可以在控制器中执行此操作。

于 2013-09-22T19:41:36.790 回答