在 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}}
我有以下下拉列表并且有这样的要求: 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}}