我正在尝试使用以下代码将标记名称作为列:
查询对象:
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},
]
};
答案 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
}