2012-08-09 65 views
2

我正在構建一個拉力賽網格以顯示父級故事。對於每一行,我想遍歷該故事的所有孩子,並從每個孩子故事中提取一些信息。例如從父記錄中訪問子故事

Ext.Array.each(data, function(record) { 
     //Perform custom actions with the data here 
     //Calculations, etc. 
     recName=record.get('Name'); 
     if (recName.search(/\[Parent\]/i) != -1) { 

      // Grab Child Iterations 
      if (record.get('Children').length) { 
       var childlist = record.get('Children'); 
       for (var child in childlist) { 
             // I want to get each child's Iteration !!! 
       } 
      } else { 
       childIter = "none"; 
      } 

      records.push({ 
       FormattedID: record.get('FormattedID'), 
       ScheduleState: record.get('ScheduleState'), 
       Name: recName, 
       NumChildren: record.get('Children').length, 
       PRDNumber: record.get('PRDNumber') 
      }); 
     } 
    }); 

但是,在record.get(「兒童」)retuns看起來像對象:

_rallyAPIMajor "1" 
_rallyAPIMinor "34" 
_ref "https://rally1.rallydev.com/slm/webservice/1.34/hierarchicalrequirement/7272142216.js" 
_refObjectName "[Comp] User Story" 
_type "HierarchicalRequirement" 

我假設有一些分機呼叫將採取_ref URI,下載並解析把JSON變成一個很好的對象我可以開始做childrecord.get('field'),但是對於我來說,我找不到合適的函數來調用。

回答

0

您可以使用記錄的型號的加載方法來檢索在這個問題/答覆中提到的具體項目:

Rally App2.0 - Retrieve a specific story

在你的情況,你可以從現有的記錄模式:

var model = record.self; 
model.load(child.get('ObjectID'), { 
    //options 
}); 

然而,在你的情況,如果你只是尋找每個孩子故事的迭代的一些信息,你可能只包括它在抓取您的用於裝載父初始WsapiDataStore的:

fetch: ['Children', 'Iteration', 'StartDate', 'EndDate'] 
+0

謝謝凱爾!有趣的是,如果「fetch:true」沒有像當你明確列出「fetch:['Children']」時那樣返回關於記錄的Children(即沒有迭代信息)的儘可能多的信息。「同時,感謝model.load的想法。 「child.get」方法在我工作的範圍中不可用,但我認爲我可以從孩子的_ref屬性中排除OID。最終會使用這兩個想法! – CiscoDaveC 2012-08-09 20:53:27