1

我正在尝试基于选定的迭代进行查询,并根据该迭代的故事显示一些结果。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html>
<head>
   <meta name="Name" content="SubField Query" />
   <title>SubField Query Example</title>
   <script src="/apps/1.26/sdk.js"></script>
   <script type="text/javascript">
   function onLoad() {
    rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
                                '__PROJECT_OID__',
                                '__PROJECT_SCOPING_UP__',
                                '__PROJECT_SCOPING_DOWN__');

    var iterConfig = {};
        iterDropdown = new rally.sdk.ui.IterationDropdown(iterConfig, rallyDataSource);
        iterDropdown.display(document.getElementById("test"), onSelected);
        rallyDataSource.findAll(queryConfig, showStories);



}

function showStories(results) {
        var info = document.getElementById("info");
        info.innerHTML = "<b>Iteration Story Information</b><br>";
        var story;
        for (var i = 0; i < results.stories.length; i++){
             story = results.stories[i];
             info.innerHTML += story.Name + ' - ' + story.Owner + ' - ' + story.Project + ' - ' + story.State + ' - ' + story.PlanEst + '<br>';
        }
    };


function onSelected() {
    var queryConfig = {
    type: 'hierarchicalrequirement',
    key: 'stories'
    query: '(Iteration.Name =' + iterDropdown.getSelectedName() + ')'
    fetch: 'Name, Owner, Project, State, PlanEst'
    }
   }
  rally.addOnLoad(onLoad);
</script>
</head>
<body>
<h1>Test Report Page</h1>
<div id = "test"></div>
<div id = "info"></div>
</body>
</html>

我在理解程序流程时遇到了一些麻烦。我看到它的方式,onLoad 运行,并且在 onLoad 中它调用 onSelected 函数来创建一个查询,然后在 findAll 命令中使用该查询来运行所述查询。我曾尝试在各个地方移动 showStories,看看是否会改变结果,但它什么也没做。请指教。

4

1 回答 1

0

javascript 和回调的异步特性一开始可能有点吓人。你真的很亲近。这是一些固定的代码:

function onLoad() {
    //code snipped above
    //display the iteration dropdown and call onSelected when it's ready
    iterDropdown.display(document.getElementById("test"), onSelected);
}

function onSelected() {
    var queryConfig = {
        type: 'hierarchicalrequirement',
        key: 'stories',
        query: '(Iteration.Name = "' + iterDropdown.getSelectedName() + '")', //include quotes around name
        fetch: 'Name,Owner,Project,State,PlanEst' //no spaces in fetch
    };

    //call rallyDataSource.findAll here, and showStories will be called with the data
    rallyDataSource.findAll(queryConfig, showStories);
}

function showStories(results) {
    //show stories here
}

//program execution starts here
rally.addOnLoad(onLoad);

所以基本流程是onLoad、onSelected、showStories。

于 2013-03-01T00:40:37.630 回答