在 ember js 中级联 select 数据绑定

cascade select data binding in ember js

我有以下下拉列表并且有这样的要求: level2 独立加载, 但是 level3 将基于 level2 加载, level4 正在加载基于 level3

我是ember js的新手,请帮助我实现此目的的正确常规方法是什么。 (抱歉英语不好)

您应该使用 DS.promiseArrays 来创建异步计算属性。我写下了一些基本的伪代码。基本上 data1 在路由中加载(例如模型挂钩)。 data2 取决于 data1 的选择。当它被选中时,将触发异步调用并检索 select2 的数据。这是在整个过程之后..

哈佛商学院

 {{select
   data=selectData1 < This is preloaded
   selection=data1}}

JS

select2Data: function() {
    return DS.PromiseArray.create({
       promise: store.query('x/y', { c : data1.get('id') }) < this should resolve to array
    })
}.property('data1') 

哈佛商学院

{{#if select2Data.length}}
       {{select
           data=selectData2 < This is based on selection1
           selection=data2}}
{{/if}}

JS(与之前相同,但使用 data2)

select3Data: function() {
    return DS.PromiseArray.create({
       promise: store.query('x/y', { c : data2.get('id') })  
    })
}.property('data2') 

哈佛商学院

 {{#if select3Data.length}}
           {{select
               data=selectData3 < This is based on selection2
               selection=data3}}
 {{/if}}