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 に答える