我需要连接几个变量来创建一个属性,例如,我有一组 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')
或者,您也可以在控制器中执行此操作。