Domanda

Vorrei recuperare l'oggetto JSON per il registro di revisione utilizzando l'URL associato alla storia dell'utente.Ho compiuto questo con jQuery usando il seguente codice, anche se preferirei farlo con strumenti costruiti in SDK Rally.Non ho avuto fortuna con le richieste ext.ajax o ext.data.jsonp, anche se sento che è l'approccio corretto.Qualsiasi aiuto sarebbe apprezzato.

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

È stato utile?

Soluzione

Questo è relativamente semplice con l'app SDK 2.0.I seguenti esempi nella documentazione dovrebbero essere utili:

http://developer.llydev.com/apps/2.0p4 / DOC / #! / Guida / AppsDK_20_Data_Models

http://developer.llydev.com/apps/2.0P4 / DOC / #! / Guida / AppsDK_20_Data_stores

Ecco un piccolo piccolo snippet di codice per ottenere la storia della revisione di una storia specifica:

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

La cosa bella con l'utilizzo dell'SDK è che farà automaticamente le richieste Ajax vs. Jsonp a seconda di come stai eseguendo l'app.L'esempio sopra funziona alla grande per una singola storia.Se desideri analizzare attraverso più storie che desideri utilizzare un negozio al posto del modello.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
                    });
                }
            });
        }
    } 
});
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top