灰烬选择元素 - 无法捕捉更改事件

时间:2015-05-22 13:39:01

标签: ember.js

灰烬问题 - 仍然习惯了恩伯,但取得了进步。这是我的问题:我有一个引用组件的模板;该组件包含一个select元素。 select元素正确显示,我想根据第一个元素中的选择更新另一个select元素的内容。但是,我无法捕获第一个选择元素的on change事件。以下是包含select:

的组件代码
{{view 
  "select" 
  content=types 
  value=selectedtType 
  selection=selectedtType 
  prompt="Select Type..." 
}}

所以我不确定如何在组件模板中引用on change事件,或者函数本身应该去哪里 - 组件的component.js文件,或者在route.js文件中父模板。我已经对此做了很多研究,但还没有能够让它发挥作用。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

检查这个JSBin.在这个例子中,我让我的依赖选择使用计算属性作为其内容。此计算属性的单个从属密钥是第一个选择的value。如果您使用组件执行此操作,则组件需要将计算属性作为select视图的属性' content。每当第一个选择发生更改时,它将导致计算属性重新计算,从而更新第二个选择的内容。即使在使用组件的示例中,此代码也可能位于控制器上,以使您的组件保持足够通用性,只需将内容用于其选择并显示它而不是控制显示逻辑本身。

其他选项,具有observes第一个选择值的函数,并更新作为第二个选择内容的控制器变量。现在,如果您的示例更复杂,因为更改的选择具有不同的option.valuePathoption.labelPath,您也可以将这些值传递到您的组件中。