我有嵌套組件。每個組件都有按鈕來顯示其嵌套組件。如何在不查詢的情況下將ember計算的模型數據傳遞給嵌套組件?
從控制器I穿過所有部件選擇框選項(上存儲查詢)。但是查詢是在最後一個選擇框甚至顯示/繪製組件之前完成的。在繪製第二個具有此屬性的組件時,實時查詢它的完成情況。
有沒有辦法不這樣做,直到查詢其真正需要的選擇框來界定呢?我不想直接在嵌套組件本身中存儲屬性。
EDITED
正如kumkanillam建議,他的解決方案的工作非常好,這裏是代碼的想法。
在CONTROLER:
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"));
}
}
在CONTROLER HBS
{{#task-list
allReactionTimes=reactionTimesForOptions
initialiseRatingOptionsData=(action "initialiseRatingOptionsData")}
{{/task-list}}
然後,在接下來的2個嵌套組件
allReactionTimes=allReactionTimes
initialiseRatingOptionsData=initialiseRatingOptionsData
而且finnaly在點擊和表示我的組件的點,這需要有來自數據庫的數據,組件決定顯示最終組件
toggleRatingScreen(){
this.initialiseRatingOptionsData(); /* at this point query are done since needed only at this point*/
....
你說的'計算模型data'是什麼意思?你指的是'選擇框選項'嗎? – kumkanillam
在控制器等: allWorkQualities:函數(){ 返回this.get( 「商店」)的findAll( 「工作質量」); } .property(「store」), 我想我應該刪除「計算」單詞 –