Pregunta

Me gustaría recuperar el objeto JSON para el registro de revisión utilizando la URL asociada con la historia del usuario.He logrado esto con jQuery usando el siguiente código, aunque preferiría hacerlo con herramientas construidas en el Rally SDK.No he tenido ninguna suerte con las solicitudes ext.ajax o ext.data.jsonp, aunque siento que es el enfoque correcto.Cualquier ayuda sería apreciada.

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

¿Fue útil?

Solución

Esto es relativamente sencillo con la aplicación SDK 2.0.Los siguientes ejemplos en la documentación deben ser útiles para usted:

http://developer.rallydev.com/apps/2.0P4 / Doc / #! / Guía / AppSDK_20_DATA_MODELS

http://developer.rallydev.com/apps/2.0P4 / Doc / #! / Guía / appsdk_20_data_stores

Aquí hay un fragmento de código rápido para obtener el historial de revisión de una historia específica:

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
                    });
                }
            }
        });
    }
});

Lo bueno con el uso del SDK es que automáticamente hará automáticamente las solicitudes de AJAX vs. JSONP, dependiendo de cómo esté ejecutando la aplicación.El ejemplo anterior funciona ideal para una sola historia.Si desea analizar las múltiples historias, querrá usar una tienda en lugar de modelar.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
                    });
                }
            });
        }
    } 
});

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top