我想检索使用与用户相关的故事URL版本日志JSON对象。 我曾尝试使用下面的代码使用jQuery做到了这一点,但我宁愿建在拉力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
});
}
});
这与应用程序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的好处是,这将取决于你是如何运行的应用程序会自动做阿贾克斯主场迎战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
});
}
});
}
}
});