题
我想使用与用户故事关联的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
});
}
});
. 解决方案
这与App SDK 2.0相对简单。文档中的以下示例应该对您有所帮助:
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
});
}
});
}
}
});
. 不隶属于 StackOverflow