如何在不查询的情况下将 ember 计算模型数据传递给嵌套组件?

How to pass ember computed model data to nested component without querying?

我有嵌套组件。每个组件都有按钮来显示其嵌套组件。

我从控制器通过所有组件传递选择框选项(商店查询)。但是查询是在带有选择框的最终组件甚至 shown/drawn 之前完成的。真正的查询是在绘制带有此 属性 的第二个组件时完成的。

有没有办法在真正需要绘制选择框之前不进行查询?我不想直接在嵌套组件本身中存储 属性。

已编辑

正如 kumkanillam 所建议的那样,他的解决方案非常有效,这里是实现想法的代码。

在控制器中:

        reactionTimesForOptions: null,
        allReactionTimes: function() {
            return this.get("store").findAll("reaction-time");
        }.property("store"),
        actions:{
            initialiseRatingOptionsData(){
                if(Ember.isEmpty(this.get("reactionTimesForOptions"))) {
                    this.set("reactionTimesForOptions",  this.get("allReactionTimes"));
            }
        }

在控制器 hbs 中

{{#task-list 
    allReactionTimes=reactionTimesForOptions 
    initialiseRatingOptionsData=(action "initialiseRatingOptionsData")}
{{/task-list}}

然后在接下来的 2 个嵌套组件中

 allReactionTimes=allReactionTimes
 initialiseRatingOptionsData=initialiseRatingOptionsData

最后在单击并显示我的组件时需要从数据库中获取数据,在组件中决定显示最终组件

toggleRatingScreen(){
    this.initialiseRatingOptionsData(); /* at this point query are done since needed only at this point*/
    ....

您可以从控制器传递空的选择框选项 属性 以及将更新 selectbox 选项的函数 updateSelectboxOptions,在嵌套组件中,当您需要数据时,您可以调用 updateSelectboxOptions