2017-06-14 115 views
0

我的MongoDB看起來像這樣提取數據。通變量從MongoDB的流星

以下是我的代碼:

Template.showDoubts.onCreated(函數(){

this.uid = null; 
this.uid = UserDetails.findOne({userId : Meteor.userId()}); 
this.count = 0; 
this.cname = this.uid.channelsSubscribed[Session.get('doubtIndex')] 

});

IsnoDoubtsFollowed : function(){ 
    var flag = false; 
    _.each(_.keys(Template.instance().uid.doubtThreadFollowed), function(key){ 
     console.log('key : ' + key); 
     if(key == Template.instance().cname){ 
      console.log('values : ' + Template.instance().uid.doubtThreadFollowed.key); 
      flag = true; 
     } 
    }); 

基本上我想檢索Template.instance()。uid.doubtThreadFollowed.key其中key是變量名稱。作爲變量傳遞對象的關鍵是不可能的?

道歉,如果語言不清楚。

+0

我也試過路過Template.instance()uid.doubtThreadFollowed.Session.get( 'CNAME')和Template.instance()uid.doubtThreadFollowed.Template.instance(。 ).cname但錯誤持久。對於第一種情況,它表示無法讀取未定義的屬性'get'。對於第二種情況,它表示無法讀取未定義的屬性實例 – user3807691

+0

我知道我可以通過使用_click函數的underscorejs來檢索關鍵值。我的問題是,如何將該值傳遞給Template.instance()。uid.doubtThreadFollowed.key(因爲這顯示的是未定義的.key是一個變量,而不是一個靜態字段) – user3807691

+0

請包括您設置uid屬性的代碼模板實例。 –

回答

0

我不確定此代碼的主要用途是什麼,但通過使用變量的值作爲關鍵字來獲取對象的屬性,請使用括號。例如someObject[variable]。然後,你的代碼可能是這樣的:

IsnoDoubtsFollowed : function(){ 
    let flag = false; 
    const doubtThreadFollowed = Template.instance().uid.doubtThreadFollowed; 
    Object.keys(doubtThreadFollowed).forEach(function(key) { 
     console.log('key : ' + key); 
     if(key === Template.instance().cname) { 
      console.log('values: ', doubtThreadFollowed[key]); 
      flag = true; 
     } 
    }); 
}); 
+0

謝謝!現在工作 – user3807691