2012-10-02 17 views
3

我想通過與用戶故事關聯的URL檢索修訂日誌的JSON對象。我已經用jQuery使用下面的代碼完成了這個工作,不過我寧願使用Rally SDK中的內置工具來完成。我沒有與Ext.Ajax或Ext.data.JsonP請求運氣,但我覺得這是正確的方法。任何幫助,將不勝感激。查詢用戶故事修訂在拉力

$.ajax({ 
    url: URL, 
    dataType: 'jsonp', 
    jsonp: 'jsonp', 
    success: function(response) { 
     $.each(response.RevisionHistory.Revisions, function(key, rev) { 
      //Parse Revision Log 
     }); 
    } 
}); 

回答

2

這對於App SDK 2.0來說是相對直接的。在文檔中下面的例子應該對您有所幫助:

http://developer.rallydev.com/apps/2.0p4/doc/#!/guide/appsdk_20_data_models

http://developer.rallydev.com/apps/2.0p4/doc/#!/guide/appsdk_20_data_stores

這裏有一個快速的小的代碼片段獲取特定故事的修訂歷史:

Rally.data.ModelFactory.getModel({ 
    type: 'UserStory', 
    success: function(storyModel) { 
     var storyRef = 'https://rally1.rallydev.com/slm/webservice/1.37/hierarchicalrequirement/12345.js'; 
     var storyID = Rally.util.Ref.getOidFromRef(storyRef); 
     storyModel.load(storyID, { 
      fetch: ['Name', 'FormattedID', 'Description', 'RevisionHistory', 'Revisions'], 
      callback: function(story, operation) { 
       if(story && story.get('RevisionHistory') && story.get('RevisionHistory').Revisions) { 
        Ext.Array.each(story.get('RevisionHistory').Revisions, function(revision) { 
         //Parse revision log 
        }); 
       } 
      } 
     }); 
    } 
}); 

的使用SDK的好處在於它會根據您運行應用程序的方式自動執行ajax與jsonp請求。上面的例子對於單個故事很有用。如果你想通過多篇文章解析你想使用一個店,而不是model.load的:

Ext.create('Rally.data.WsapiDataStore', { 
    model: 'UserStory', 
    autoLoad: true, 
    fetch: ['Name', 'FormattedID', 'Description', 'RevisionHistory', 'Revisions'],  
    listeners: { 
     load: function(store, stories) { 
      Ext.Array.each(stories, function(story) { 
       if(story && story.get('RevisionHistory') && story.get('RevisionHistory').Revisions) { 
        Ext.Array.each(story.get('RevisionHistory').Revisions, function(revision) { 
         //Parse revision log 
        }); 
       } 
      }); 
     } 
    } 
}); 
+0

的數據存儲方法是什麼,我以後,雖然story.RevisionHistory.Revisions似乎永遠不會存在。我最接近的是story.data.RevisionHistory,它在FireBug中可以看到具有屬性:_rallyAPIMajor,_rallyAPIMinor,_ref和_type。使用_ref字段讓我回到我開始的地方。我是否需要在查詢中添加一些內容以獲取story.RevisionHistory.Revisions? –

+0

似乎已經回答了我自己的問題。需要將第一個查詢中的「fetch」行添加到第二個;)感謝您的幫助Kyle! –

+0

哎呀!接得好。我更新了第二個代碼示例是正確的。 –

相關問題