2017-08-30 49 views
0

這裏是有點UI代碼,其中我試圖設置數據的一些默認值,從智能組件傳遞:在哪裏存儲BlazeJS組件變量(模板實例或數據上下文)?

Template.selector.onCreated(function() { 
    const template = this, 
     data = this.data; 

    _.defaults(data, { 
    inputValue: new ReactiveVar(), 
    showDropOnFocus: true, 
    showDropOnDblClick: true 
    }) 

    const drop = template.drop = { 
    shown: new ReactiveVar() 
    }; 

    const input = template.input = { 
    hasFocus: new ReactiveVar(), 
    hasValue: new ReactiveVar(), 
    wasDblClicked: new ReactiveVar() 
    }; 

    ... 
}) 

但感覺對我來說很disambiguous,存儲在數據中的某些組件變量上下文,而模板實例中的其他人。

那麼,是不是一個正確的做法:

  1. 要修改數據的情況下,而這個屬性標誌着 BlazeJS docs爲只讀?
  2. 傳遞數據反應變量,定義在頂層 組件?

回答

0

正如您所指出的那樣,data上下文不應該被修改。通常的做法是將任何被動變量存儲在模板實例本身中。通常,onCreated是最好的地方。