DDorch / jacase

JAvascript CAlculators for Scientific Equations
http://hydraulique.g-eau.net/-Calculettes-pour-l-hydraulique-
MIT License
0 stars 0 forks source link

Gestion des boutons radios du formulaire #2

Closed DDorch closed 8 years ago

DDorch commented 8 years ago

Reprendre les scripts de la version actuelle de la calculatrice.

Les scripts en question se trouvent ici : http://zone.spip.org/trac/spip-zone/browser/_plugins_/hydraulic/trunk/hyd_inc/form_js.html Ils font références à d'autres scripts qui se trouvent ici : http://zone.spip.org/trac/spip-zone/browser/_plugins_/hydraulic/trunk/js/hyd_fonctions.js

DDorch commented 8 years ago

Pour gérer les boutons radios à l'aide du mécanisme de data-binding, on peut s'inspirer de l'exemple suivant : http://stackoverflow.com/questions/31879497/angular2-radio-button-binding

DDorch commented 8 years ago

A la suite du commit 42972527b6ca0d34761a833a8277d4691a43111d, la compilation plante avec le message :

Error loading http://localhost:3000/app/radio_value_accessor.js as "./radio_value_accessor" from http://localhost:3000/app/form_cond_distri.js

Il semble que le fichier app/radio_value_accessor.js n'a pas été versionné.

DDorch commented 8 years ago

Testé avec la version ff60efd16fefaa6c81900efe14e2ae54afb5f562

Il manque encore un test pour faire en sorte qu'il y a toujours un bouton de la colonne "Paramètre à calculer" qui soit coché.

DDorch commented 8 years ago

La version cad5db3db6127890574cb5e63c82033d1cc8fc19 est censé prendre en compte la lecture dans le fichier json du formulaire du paramètre de l'équation qui sera le paramètre à calculer par défaut. Le problème est que la lecture du fichier json se fait de façon asynchrone et que la variable n'est pas disponible au moment opportun pour définir le tableau qui va permettre de cocher les boutons radio.

DDorch commented 8 years ago

Le problème venait du fait que les requêtes http sont asynchrones. Je me suis inspiré de l'exemple fourni ici : https://www.ng-book.com/2/p/HTTP/#building-the-simplehttpcomponent-controller

L'utilisation de subscribe permet d'intercepter la réponse envoyée après la requête http. Il suffit donc d'ajouter l'initialisation des variables dans le subscribe pour que celles-ci soient initialisées au bon moment.

DDorch commented 8 years ago

OK, il reste effectivement à gérer l'initialisation du champ input au début. Angular a un mécanisme de "property binding" qui permettra à al fois d'initialiser l'état (enabled/disabled) des input au chargement et de les mettre à jour au moment des sélections des boutons radio.