我是Ember.js的新手,我正在试图弄清楚Select视图如何将他们的选择绑定到控制器。我有这个模板:
{{view Ember.Select
contentBinding="content"
selectionBinding="selectedCompany"
optionLabelPath="content.name"}}
{{view Ember.Select
contentBinding="selectedCompany.employees"
selectionBinding="selectedEmployee"
optionLabelPath="content.name"}}
Employee: {{selectedEmployee.name}}
Age: {{selectedEmployee.age}}
我发现第二个选择会在selectedCompany
更改时更新,但我无法在name
中引用age
或selectedEmployee
的值,直到我更改第二个从物理上选择不同的值。
如何在首次选择更改时设置selectedEmployee
,以便我可以使用它的值?
为了更清晰,我的工作代码为here。
答案 0 :(得分:1)
更改第二个选择框的内容并不会实际更改其选择。您必须手动执行此操作,例如通过向控制器添加以下方法
onChangeCompany : function() {
if (!this.get('selectedCompany.employees').contains(this.get('selectedEmployee'))) {
this.set('selectedEmployee', this.get('selectedCompany.employees').objectAt(0));
}
}.observes('selectedCompany')
它需要一些非空和数组范围检查,但是完成工作 - 如果您选择一个员工然后更改公司,员工也会改变。