2012-08-09 75 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