Доступ к дочерним историям из родительской записи

Я создаю rallygrid для отображения историй на уровне родителей. Для каждой строки я хочу перебрать всех дочерних элементов этой истории и извлечь некоторую информацию из каждой дочерней истории. например

    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('Children') повторно настраивает объекты, которые выглядят так:

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

Я предполагаю, что есть какой-то вызов Ext, который возьмет URI _ref, загрузит его и разберет JSON в хороший объект, на котором я могу начать делать childrecord.get('field'), но для моей жизни я могу' t найти правильную функцию для вызова.


person CiscoDaveC    schedule 09.08.2012    source источник


Ответы (1)


Вы можете использовать метод загрузки модели записи для извлечения определенного элемента, как указано в этом вопросе/ответе:

Rally App2.0 — получение конкретной истории

В вашем случае вы можете получить модель из существующей записи:

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

Однако в вашем случае, если вы просто ищете некоторую информацию о каждой итерации дочерней истории, вы, вероятно, можете просто включить ее в выборку вашего исходного WsapiDataStore, используемого для загрузки родителя:

fetch: ['Children', 'Iteration', 'StartDate', 'EndDate']
person Kyle Morse    schedule 09.08.2012
comment
Спасибо Кайл! Забавно, как fetch: true не возвращает столько информации о дочерних элементах записи (т. е. не содержит информации об итерациях), как при явном перечислении fetch: ['Children']. Также спасибо за идею с model.load. Метод child.get недоступен в той области, в которой я работаю, но я думаю, что могу получить OID из дочернего атрибута _ref. В конечном итоге использую обе эти идеи! - person CiscoDaveC; 10.08.2012