IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ext JS / Sencha Discussion :

MVC - Accéder à une variable dans la VIEW (handler) ?


Sujet :

Ext JS / Sencha

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut MVC - Accéder à une variable dans la VIEW (handler) ?
    Bonjour à tous,

    Je voudrais utiliser ce bout de code pour faire à peu prés la même chose mais hélas je n'arrive pas à accéder à la variable counter
    dans ma View.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    function addressCounter(incr) {
        if (!this.no) {
            this.no = 0;
        } else {
            this.no = this.no + 1;
        };
    };
    var counter = new addressCounter();
    console.log(counter.no);
     
    // J'ai mis la partie ci-dessus dans mon controller
     
     
    //put below code inside your form  items       
    {
        xtype: 'button',
        text: 'Add address ',
        id: 'addaddress',
        handler: function () {
            counter.no = counter.no + 1; <====== ICI comment accéder à counter ? cela ne fonctionne pas
            console.log(counter.no);
     
            .....
            .....
     
        } // eof function
    }, // eof Add button

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    ah ben j'ai trouvé la solution mais je ne savais pas que l'on pouvait définir des choses en début de fichier VIEW en dehors de Define comme ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function addressCounter(incr) {
        if (!this.no) {
            this.no = 0;
        } else {
            this.no = this.no + 1;
        };
    };
     
    var counter = new addressCounter();
    console.log('ADRESSE COUNTER: ' + counter.no);
     
    Ext.define("PP.view.search.Builder", {

  3. #3
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Pas bon

    la solution est de mettre des handler là où il sont censés être c'est à dire dans le controleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Ext.define('AM.controller.Users', {
        extend: 'Ext.app.Controller',
     
        init: function() {
            this.control({
                'viewport > panel': {
                    render: this.onPanelRendered
                },
                'useredit button[action=save]': { //handler du bouton save de la vue useredit
                    click: this.updateUser
                }
            });
        },
     
        onPanelRendered: function() {
            console.log('The panel was rendered');
        },
        updateUser: function(button) {
            //code ici du contôle
        }
    });
    dans la vue mettre le bouton avec l'action 'save'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Ext.define('AM.view.user.Edit', {
        extend: 'Ext.window.Window',
        alias: 'widget.useredit',
     
        title: 'Edit User',
        layout: 'fit',
        autoShow: true,
     
        initComponent: function() {
            this.items = [
                {
                    xtype: 'form',
                    items: [
                        {
                            xtype: 'textfield',
                            name : 'name',
                            fieldLabel: 'Name'
                        },
                        {
                            xtype: 'textfield',
                            name : 'email',
                            fieldLabel: 'Email'
                        }
                    ]
                }
            ];
     
            this.buttons = [
                {
                    text: 'Save',
                    action: 'save' //ici on associe l'action save au bouton cette action sera utilisée par le contrôleur pour gérer le bouton
                }
            ];
     
            this.callParent(arguments);
        }
    });
    A+JYT

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Salut sekaijin,

    Tu as raison, cela ne me plaisait pas de mettre tout ça dans la View, je comptais mettre tout cela dans le Controller après avoir réussi à faire fonctionner le tout.

    Merci pour ta réponse,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. accéder à une variable dans un objet dans un tableau
    Par eprevot dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2013, 08h53
  2. [MySQL] Accéder à une variable dans un tableau
    Par niunia dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/01/2008, 19h16
  3. Réponses: 3
    Dernier message: 16/11/2007, 11h03
  4. [VBA-E] Comment accéder à une variable tableau située dans un autre module
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/02/2007, 13h15
  5. accéder à une variable déclarée dans un autre fichier
    Par sg.forums dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/10/2006, 09h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo