2 votes

Existe-t-il un exemple de définition et de récupération des paramètres d'une application Rally SDK 2 ?

À quoi ressemble un objet de paramétrage ? Je n'arrive pas à mettre à jour les paramètres avec quoi que ce soit et à obtenir quelque chose d'intéressant en retour. J'imprime this.settings et à chaque fois que je rafraîchis, il ne fait qu'enregistrer un objet prototype sans valeur.

Voici à quoi ressemble mon application de test. Je la place dans un panneau à l'intérieur de Rallye, elle ne fonctionne pas à distance.

<script type="text/javascript" src="/apps/2.0p2/sdk.js"></script>

<script type="text/javascript">
    Rally.onReady(function() {
        /*global console, Ext */

        Ext.define('CustomApp', {
            extend: 'Rally.app.App',
            componentCls: 'app',

            launch: function() {
                //Write app code here
                console.log( "settings", this.settings );
                this.updateSettings( { Name: 'test', Value: Ext.JSON.encode( { test: "blah" } ) } );
            }
        });

        Rally.launchApp('CustomApp', {
            name: 'test'
        });
    });
</script>

3voto

curmudgeon Points 302

Il s'avère qu'il y a un bug dans la version préliminaire que j'utilisais. Et J'essayais de faire passer le mauvais type de préférence. Notez que les préférences sont liées à l'ID de l'application et non au projet ou à l'espace de travail. Comme il a besoin de l'ID de l'application, il ne fonctionne pas lorsqu'il est exécuté en dehors de Rallye.

Le problème est qu'il manque une ligne dans la fonction updateSettings. Vous pouvez facilement contourner ce problème en ajoutant la même fonction à la définition de votre application (n'est-ce pas génial que la source soit incluse dans la documentation ?) Créez simplement une fonction comme celle-ci :

updateSettings: function(options){
  Rally.data.PreferenceManager.updateAppPreferences({
    appID: this.getContext().get('appID'),
    settings: options.settings,
    success: function(updatedSettings){
      Ext.apply(this.settings, updatedSettings);
      if(options.success){
        options.success.call(options.scope);
      }
    },
    scope: this
  });
}

Ainsi, l'objet de préférence doit être transmis comme ceci :

this.updateSettings( {settings: { test: "blah" ) } } );

Ensuite, quand il revient, le getSetting("test") me donnera "blah". (Il crée une préférence avec un Nom égal à "test", une Valeur égale à "blah" et un AppId égal à l'application actuelle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X