2015-09-15 64 views
0

我有Post s和Topic s在Parse上。有〜20個不同的Topic s - 每個Post以數組關係存儲多達5個。Parse.com - .get()返回一個[object Object]?

Post更新時,我需要檢查它分配給Topic並可能發出通知。

所以我寫了這一點:

Parse.Cloud.afterSave("Post", function(request) { 
    Parse.Cloud.useMasterKey(); 
    var postObject = request.object; 
    var postTitle = postObject.get("title"); 
    var topics  = postObject.get("topic"); 
    var topicCount = topics.length; 

    console.log("Post with title " + postTitle + " has " + topicCount + " topics: " + topics); 

    // code continues to push logic, 
    // but already the log above is wrong, so I'll leave that off. 
} 

舉例來說,如果我做了一條信息的「保時捷瞄準了特斯拉」,並給它一個主題,一個爲「高科技」的標題,我希望它記錄是這樣的:

Post with title Porsche Takes Aim at Tesla has 1 topics: tech 

而是我這樣做的時候,它會記錄:

Post with title Porsche Takes Aim at Tesla has undefined topics: [object Object] 

我在做什麼錯?該文檔建議,當您使用數組字段的名稱調用get時,它應該返回一個JavaScript數組。相反,它似乎是返回一個沒有任何屬性或內容的空白JavaScript對象。

我只是需要一些方法來看看哪些主題是附加和迭代通過它們。

請注意,我知道這個對象正在正確創建,因爲我可以在數據瀏覽器中看到它。導航到Post,然後點擊View Relationship下的topic告訴我,它已正確連接到tech主題。

回答

1

第一個:[object Object]並不意味着該對象是空的。使用JSON.stringify()來查看它的內容。

據我所知,主題是一個對象。在這種情況下,你不應該期望它被打印爲「技術」。我想你是指這個主題的一些屬性,比如「名稱」。

設置主題時可能還存在問題。確保始終使用類似postObject.set("topic", arrayWithTopicsInside)的東西,因爲我認爲您已將此設置爲不在數組中的主題。您可能需要刪除該列,以便可以添加不同的類型。

我想應該是這樣的:

Parse.Cloud.afterSave("Post", function(request) { 
    Parse.Cloud.useMasterKey(); 
    var postObject = request.object; 
    var postTitle = postObject.get("title"); 
    var topics  = postObject.get("topic"); 

    Parse.Object.fetchAll(topic).then(function(topics) { 
     var topicNames = [] 
     _.each(topics, function(topic) { 
      var name = topic.get("name"); 
      names.push(name); 
     }); 
     console.log("Post with title " + postTitle + " has " + topicNames.count + " topics: " + topicNames); 

    }, function(error) { 
     concole.log("error fetching objects" + JSON.stringify(error)); 
    }); 
} 
相關問題