Захват атрибута имени тегов/тегов в Rally

Я смотрел на модель объекта ралли, но я не могу понять, как получить атрибут имени тега дефекта.

Я обязательно включил теги и теги в свое заявление о выборке. Я храню все дефекты в массиве объектов с именем дефектыNEWDEFECTS[]

Я могу вернуть объект Tag следующим образом:

 tagNEWDEFECTS = defectsNEWDEFECTS[i].Tags;
document.write(tagNEWDEFECTS);

который вернет это:

[object Object]

Но я не могу заставить его вернуть ИМЯ тега. Я старался:

tagNEWDEFECTS = defectsNEWDEFECTS[i].Tags.Name;
tagNEWDEFECTS = defectsNEWDEFECTS[i].Tags.Tag.Name;
tagNEWDEFECTS = defectsNEWDEFECTS[i].Tag.Name;

Но все они возвращают «неопределенное».

Любые идеи, как получить имя тега? В конечном счете, цель здесь состоит в том, чтобы ввести пользовательские теги, которые я могу пометить в своей программе для выполнения определенных действий. Например, один тег будет называться «RollOverDefect».

Мне нужно иметь возможность определить, какие дефекты имеют тег с именем «RollOverDefect».

Спасибо!


person Wise Man    schedule 16.05.2013    source источник


Ответы (2)


Теги — это коллекция, поэтому вам в конечном итоге понадобится вложенный цикл для атрибута коллекции Теги, чтобы справиться с этим. После того, как вы вложили в дополнительный цикл, вы можете ссылаться на имя тега через:

tagNEWDEFECTS = defectsNEWDEFECTS[i].Tags[j].Name;

Надеюсь, это будет полезно — дайте нам знать, если это поможет.

person Community    schedule 16.05.2013
comment
Я понимаю, о чем вы говорите, но мне трудно понять, как это сделать. - person Wise Man; 17.05.2013
comment
Я попытаюсь повторно опубликовать с более конкретным комментарием после того, как немного поразмыслю над этим кодом. Спасибо за совет - person Wise Man; 17.05.2013
comment
Итак, если я помещу один объект Tags в tagNEWDEFECTS[] с индексом 0, например: tagsNEWDEFECTS[0] = defectsNEWDEFECTS[i].Tags;, тогда я смогу получить имя первого тега в этой коллекции тегов, выполнив это?: tagsNEWDEFECTS[0].Tags[0].Name Когда я это сделаю, мой javascript выйдет из строя. Опять же, я постараюсь публиковать более вдумчивые комментарии, когда смогу, но по какой-то причине этот комментарий действительно трудно уложить в голове. - person Wise Man; 17.05.2013

Вы можете найти этот пример полезным:

<html>
<head>
<title>App Example: Defects with Tags</title>
<meta name="Name" content="App Example: Defects with Tags" />
<meta name="Version" content="2013.2" />
<meta name="Vendor" content="Rally Labs" />
<script type="text/javascript" src="/apps/1.33/sdk.js?apiVersion=1.43""></script>
<script type="text/javascript">

    var table = null;

    function defectsWithTagsExample() {
        var rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
            '__PROJECT_OID__',
            '__PROJECT_SCOPING_UP__',
            '__PROJECT_SCOPING_DOWN__'
        );

        function itemQuery() {
            var queryObject = {
                key: 'defects',
                type: 'Defect',
                fetch: 'FormattedID,Name,State,Description,Tags,Name',
                query: '(State = "Submitted")'
            };
            rallyDataSource.findAll(queryObject, populateTable);
        }

        function populateTable(results) {

            if (table) {
                table.destroy();
            }

            var tableDiv = document.getElementById('aDiv');

            var config = {
                'columnKeys'    : ['FormattedID',  'Name',  'Description', 'State',   'Tags'],
                'columnHeaders' : ['FormattedID',  'Name',  'Description', 'State',   'Tags'],
                'columnWidths'  : ['100px',        '400px', '200px',        '85px',   '300px']
            };

            table = new rally.sdk.ui.Table(config);
            table.addRows(results.defects);

            for (i=0;i<results.defects.length;i++) {

                myDefect = results.defects[i];
                myTags = results.defects[i].Tags;
                myTagString = "";

                for (j=0;j<myTags.length;j++) {
                    myTag = myTags[j];
                    myTagName = myTags[j].Name;
                    if (j == 0) {
                        myTagString += myTagName;
                    } else {
                        myTagString += ", " + myTagName;
                    }
                }

                linkConfig = {item: {FormattedID: myDefect.FormattedID, "_ref" : myDefect._ref}};
                defectLink = new rally.sdk.ui.basic.Link(linkConfig);

                table.setCell(i, 0, defectLink.renderToHtml());
                table.setCell(i, 4, myTagString);
            }

            table.display(tableDiv);

        };

        itemQuery();
    }

    rally.addOnLoad(defectsWithTagsExample);
</script>
</head>
<body>
<div id="aDiv"></div>
</body>
</html>
person Community    schedule 17.05.2013