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 :

[Sencha Touch] Bug controller et référence a une liste


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut [Sencha Touch] Bug controller et référence a une liste
    Edit : titre modifier pour éviter de recréer un sujet

    Bonjour,

    je viens de me lancer dans le développement d'applications mobile avec le framework Sencha Touch depuis ce matin.

    j'ai une vue contenant une liste de client, que je récupère via une base de données.
    Je souhaiterais que lorsqu'on clic sur un élément de la liste, afficher une seconde vue contenant toutes les info du clients (c'est la que je bloque).

    voici mon code :

    ma vue client :
    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
    Ext.define('MyApp.view.Clients', {
    	extend: 'Ext.dataview.List',
    	id : "listeClient",
     
        requires: [
    		'Ext.data.proxy.Rest'
        ],
     
    	config: 
    	{
     
    		itemTpl: '{libelle}',
    		store: 
    		{			
    			autoLoad: true,
    			fields: ['Idclient', 'libelle', 'code'],
    			proxy: 
    			{
    				type: 'rest',
    				url: 'serv/ConnectBase.php'
    			}		
    		},
     
    	},
     
     
    });
    le controller correspondant a la vue :
    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
    Ext.define('MyApp.controller.Clients', {
        extend: 'Ext.app.Controller',
     
    	config: 
    	{
    		refs: 
    		{
    			nav: '#listeClient'
    		},
     
    		control: 
    		{
    			nav: 
    			{
    				itemtap: 'onNavTap'
    			}
    		}	
    	},
     
    	onNavTap: function(list, index, item, record) 
    	{
    		Ext.Msg.alert("clic","clic");
    	},	
     
    });
    pour le moment je souhaiterais juste que lorsqu’on clic sur un élément de la liste, un message soit affiché, mais rien ne se passe.
    je n'ai pas trouver comment spécifier que mon controller et ma vue était lié peut être le problème vient il de la.

    merci d'avance.


    Edit : problème résolus

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

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    je pensais que dans la doc de sencha touch 2 cet aspect était claire mais ce n'est pas la cas.

    il faut lire
    http://docs.sencha.com/touch/2-0/#!/guide/nested_list
    qui montre la relation entre une nestedList et un detailCard
    mais il ne fait quasiment rien

    dans la doc de extjs (où les événement à gérer sont différent)
    le tuto MVC est bien plus complet
    il met en place une grid avec un form
    http://docs.sencha.com/ext-js/4-1/#!...n_architecture
    on a là la gestion de lévénement clikIem qui appelle editUser
    et cette fonction transmet bien les données à la vue.

    A+JYT

  3. #3
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    Bonjour,

    merci pour cette doc, sekaijin, mais j'ai un nouveau problème avec les changements de vues :
    je dispose d'un menu a gauche : "Accueil" et "Clients", lorsqu'on l'on clic sur un des ces éléments la vue est changée.

    lorsqu'on clic sur Client, une vue est affichée contenant la liste des clients stockées en BD (jusque la pas de soucis)

    j'ai ensuite un controller pour checker un clic sur un élément de la liste et affichier une vue detail :

    mon controller.js :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    Ext.define('MyApp.controller.Clients', {
        extend: 'Ext.app.Controller',
     
    	config: 
    	{
    		refs: 
    		{
    			nav: '#listeClient', // id de la liste de client
    			main: 'mainview',
    			toolbar: '#mainBar',
    			addButton: '#addButton'
    		},
     
    		control: 
    		{
    			addButton: 
    			{
                    tap: 'ajoutClient'
                },
     
    			nav: 
    			{
    				itemtap: 'onNavTap'
    			}
    		},
     
    	},
     
    	isActive: function() 
    	{
    		return true;
    	},
     
    	onNavTap: function(list, index, item, record) 
    	{	
    		this.showView('MyApp.view.Detail',record,1);
    	},
     
    	showView: function(Itemview,record,mode) 
    	{
    		var nav = this.getNav(),
    			main = this.getMain(),		
    			view = Ext.create(Itemview);
     
    		main.remove(main.getActiveItem());			
    		main.setActiveItem(view);
     
     
    		// clic sur un element de la liste client
    		if(mode == 1)
    			this.getToolbar().setTitle("Detail du client : "+record.get("libelle"));	
     
    		// clic sur le bouton d'ajout		
    		else
    			this.getToolbar().setTitle("Ajouter un client  ");	
     
     
    	},	
     
    	ajoutClient: function(Itemview,record) 
    	{
    		this.showView('MyApp.view.AddClients',record,0);
    		Ext.getCmp('addButton').setHidden(true);
    	}	
     
    });
    Quand je lance l'application, si je clic sur client, la liste s'affiche, je clic sur un élément de la liste, ma vue detail s'affiche --> OK

    par contre une fois sur ma vue detail, si je reclic sur client, ou si je fais client->accueil ->Client, ma liste s'affiche mais lorsque je clic sur un élément, rien ne se passe.

    de temps en temps j'obtient aussi un Warning dans la console :
    [WARN][Ext.Component#constructor] Registering a component with a id (`listeClient`) which has already been used. Please ensure the existing component has been destroyed (`Ext.Component#destroy()`.
    comment puis-je remedier au probleme ?



    merci

    Edit : problème résolus.

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

Discussions similaires

  1. Controles de selection d'une liste
    Par Delack dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/01/2010, 07h55
  2. Réponses: 5
    Dernier message: 31/03/2008, 10h41
  3. [DEB] Controler le contenu d'une liste de choix
    Par Superbretzel dans le forum Modélisation
    Réponses: 2
    Dernier message: 10/02/2008, 18h13
  4. Controle de validité sur une liste déroulante
    Par francois134 dans le forum IHM
    Réponses: 3
    Dernier message: 04/02/2008, 06h12
  5. Controle de saisie sur une liste déroulante
    Par antier dans le forum IHM
    Réponses: 3
    Dernier message: 07/12/2005, 05h42

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