proposition d'implantation
j(ai donc codé quelque chose du genre :
Code:
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
| /* présentateur pour les utilisateurs */
var Presenter_Utilisateurs = function() {
console.log('presenter-utilisateurs');
var model = new Model_Utilisateurs(this);
var view = new View_Utilisateurs(this);
/**
* methode d'initialisation
*
*/
this.init = function() {
model.init();
view.init();
};
/* methode de recherche des données
* invoquée par le onclick et les autres évènements
*/
this.fetch = function(params) {
model.query(params);
},
/* méthode de mise à jour de la partie vue
* invoquée par les retours AJAX
*/
this.update = function(data) {
view.render(data);
}
};
// avec en extrait le modèle :
var Model_Utilisateurs = function(presenter) {
var presenter = presenter;
this.init = function() [ /* vide pour le moment */ }
this.query = function(params) {
$.getJSON( 'http://serveur/index.php/utilisateurs/lister', function(data) {
presenter.update(data);
});
}
};
// vue
var View_Utilisateurs = function(presenter) {
var presenter = presenter;
this.init : function() { /* vide pour le moment */};
this.render = function(data) {
// manipulation du DOM avec $('#...')
};
}; |
bon ce n'est pas trop mal codé je crois
et je repete ce pattern pour tous les widgets de mon interface.
le problème vient de la façon de coupler les widgets entre eux : comment faire psi on a deux listes dépendantes ?
comment faire "dialoguer " deux ou plusieurs Presenter ?
merci d'avance pour les réponses !
pour la cloture javascript
c'est pour pouvoir l'utiliser en tant que globale dans les méthodes init() et query() ??
non c'est vrai, c'est peut être une erreur de ma part !
par le fait des closures javascript 'presenter' (le paramètre) est visible dans les méthodes
donc c'est vrai que cette affectation semble de trop
quand à cette écriture :
Code:
1 2
|
this.presenter = presenter; // idee de depart |
il est peut être inutile dû à la closure...
merci pour cet avis, tu vois je maîtrise encore un peu mal ce pattern... je suis en train de l'apprendre à vrai dire !
je repose ma question : comment faire pour lier plusieurs Presenters en cas de listes interdépendantes ? utiliser pub/sub ?