Ember: concat attributeBinding, how to?



我需要连接几个变量来创建一个属性,例如,我有一组 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

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

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

但它当然会在+标志处抛出错误。有什么办法可以解决这个问题吗?

为什么不将它们作为单独的绑定传递并在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')

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

最新更新