Rally 拉力赛-通过ID获取物品的更有效方式

Rally 拉力赛-通过ID获取物品的更有效方式,rally,appsdk2,Rally,Appsdk2,我一直试图查询Rally,只是为了通过其ObjectID获取某个对象,但在许多情况下,我最终需要它的父对象。例如,对于一个任务,我需要它关联的用户故事以及该故事的特性。它最终是一连串的回调(公平警告,这很难看)——有人能推荐一个更有效的解决方案吗?按OID进行查询的能力很好,但太糟糕了,我需要的不仅仅是关于该OID的信息。(注意-解决方案必须使用WSAPI,而不是LBAPI) 您可以在单个查询中直接拉入工作产品父级及其关联的功能。试试这个: Ext.create('Rally.data.

我一直试图查询Rally,只是为了通过其ObjectID获取某个对象,但在许多情况下,我最终需要它的父对象。例如,对于一个任务,我需要它关联的用户故事以及该故事的特性。它最终是一连串的回调(公平警告,这很难看)——有人能推荐一个更有效的解决方案吗?按OID进行查询的能力很好,但太糟糕了,我需要的不仅仅是关于该OID的信息。(注意-解决方案必须使用WSAPI,而不是LBAPI)


您可以在单个查询中直接拉入工作产品父级及其关联的功能。试试这个:

    Ext.create('Rally.data.WsapiDataStore', {
        model   : 'Task',
        fetch   : ['WorkProduct','Name','Feature'],
        filters : [{
            property : 'ObjectID',
            value    : OID
        }]
    }).load({
        callback : function(records, operation, success) {
            var task      = records[0];
            var userStory = task.get('WorkProduct');
            var feature   = userStory.Feature;
        }
    });

我一开始就尝试过这样的查询,但没有得到任何结果。你的回答鼓励我再试一次——结果我只需要指定上下文,然后这就完美地工作了。谢谢
    Ext.create('Rally.data.WsapiDataStore', {
        model   : 'Task',
        fetch   : ['WorkProduct','Name','Feature'],
        filters : [{
            property : 'ObjectID',
            value    : OID
        }]
    }).load({
        callback : function(records, operation, success) {
            var task      = records[0];
            var userStory = task.get('WorkProduct');
            var feature   = userStory.Feature;
        }
    });