1

次のコードを使用して、タグ名を列として取得しようとしています:

クエリ オブジェクト:

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 を使用すると結果は ... になり、タグを使用すると結果は [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},
        ]
    }; 
4

1 に答える 1

1

テーブル コンポーネントはオブジェクト グラフをトラバースするのに十分スマートだと思いますが、Tags がコレクションであるという事実がそれをつまずかせているに違いありません。データが RallyDataSource から返されたときに自分で計算するのではなく、最初にデータを自分で処理し、TagNames という列をテーブルに追加する必要がある場合があります。

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 
}
于 2013-03-08T14:50:28.540 に答える