标签名称未显示在表列中

时间:2013-03-08 05:33:47

标签: rally

我正在尝试使用以下代码将标记名称作为列:

查询对象:

var queryObject = {
                key: 'storiesBackLog',
                type: 'hierarchicalrequirement',
                fetch: 'FormattedID,Name,PlanEstimate,ScheduleState,Tags',
                query: '(ScheduleState = "Backlog")',
                order: 'FormattedID'
        };

表格配置:

var config = { columns: 
           [    
                {key:'FormattedID', header:'ID', width:60},
                {key:'PlanEstimate', header:'Points', width:60},
                {key:'Name', header:'Name', width:400},
                {key:'Tags.Name', header:'Department', width:400},
           ] 
        };

使用Tags.Name,结果为...而使用Tags,结果为[object Object]。有谁知道关键需要什么?

最终解决方案:

rally.forEach(results.storiesBackLog, function(story) {
        var tags = [];
        rally.forEach(story.Tags, function(tag) {
            tags.push(tag.Name); 
        });
        story.TagNames = tags.join(';');
    });

    var tableBackLogConfig = { columns:
        [
            {key:'TagNames', header:'Department', width:400},
        ]
    }; 

1 个答案:

答案 0 :(得分:1)

我认为表组件足够智能以遍历对象图,但我敢打赌,标签是一个集合正在绊倒它。您可能需要先自己处理数据并将一个名为TagNames的列添加到表中,而不是在从RallyDataSource返回数据时自己计算。

function onDataRetrieved(results) {
    rally.forEach(results.storiesBacklog, function(story) {
        story.TagNames = (story.Tags || []).join(', ');
    });

    var config = { columns:
        [ //...
            {key: 'TagNames', header 'Department', width: 400}
        ]
    };
    //create table 
}