【问题标题】:Grabbing Name attribute of Tags/Tag in Rally在 Rally 中抓取标签/标签的名称属性
【发布时间】:2013-05-11 20:56:38
【问题描述】:

我一直在查看拉力赛对象模型,但我不知道如何获取缺陷标签的名称属性。

我确保在我的 fetch 语句中包含 Tag 和 Tags。我将所有缺陷存储到一个名为defectsNEWDEFECTS[]

的对象数组中

我可以通过这样做返回一个 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”的标签

谢谢!

【问题讨论】:

    标签: javascript attributes tags rally defects


    【解决方案1】:

    Tags 是一个集合,因此您最终需要在 Tags 集合属性上使用一个嵌套循环来处理这个问题。嵌套到附加循环后,您可以通过以下方式引用标记名称:

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

    希望这会有所帮助 - 如果能完成工作,请告诉我们。

    【讨论】:

    • 我明白你在说什么,但我很难弄清楚该怎么做。
    • 在我对这段代码进行了一段时间的脑力搏斗后,我将尝试重新发布更具体的评论。感谢您的提示
    • 因此,如果我将一个标签对象放入索引 0 处的 tagNEWDEFECTS[] 中,如下所示:tagsNEWDEFECTS[0] = defectsNEWDEFECTS[i].Tags; 那么我是否应该能够通过这样做获得该标签集合中第一个标签的名称?: tagsNEWDEFECTS[0].Tags[0].Name 当我这样做时,我的 javascript 崩溃了。再一次,我会尽可能地发布更多深思熟虑的 cmets,但由于某种原因,这个真的很难让我理解。
    【解决方案2】:

    您可能会发现此示例很有用:

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 2021-09-26
      • 2016-03-02
      • 2014-09-13
      • 1970-01-01
      • 2019-09-09
      相关资源
      最近更新 更多