Vous devez utiliser DS.promiseArrays pour effectuer des propriétés calculées asynchrones. J'ai noté un pseudo code de base. Fondamentalement, data1 est chargé dans route (hook du modèle par exemple). data2 dépend de la sélection de data1. Quand il est sélectionné, un appel asynchrone est déclenché et les données de select2 sont récupérées. Et cela suit le troughout proccess ..
HBS
{{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')
HBS
{{#if select2Data.length}}
{{select
data=selectData2 < This is based on selection1
selection=data2}}
{{/if}}
JS (Identique au précédent, mais utilise données2)
select3Data: function() {
return DS.PromiseArray.create({
promise: store.query('x/y', { c : data2.get('id') })
})
}.property('data2')
HBS
{{#if select3Data.length}}
{{select
data=selectData3 < This is based on selection2
selection=data3}}
{{/if}}
avez-vous le faire fonctionner? Pourquoi posez-vous des questions sans laisser de commentaires? –
désolé pour réponse tardive J'ai lutté d'autres façons de le faire jusqu'à ce que trouvé c'est la meilleure façon de le faire. – Prageeth