CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

AngularJS, petite question

Zethag
Zethag
Niveau 10
09 février 2017 à 16:44:34

Salut,

Je suis en train d'apprendre AngularJS et j'ai une question par rapport à ce fiddle:

https://jsfiddle.net/hwzfm6nL/

Plus particulièrement, cette fonction:

function calculateDiscount(newValue, oldValue, scope){

Que valent les paramètres "newValue, oldValue", je ne les vois déclarés nul part?

Merci!

Ebara
Ebara
Niveau 16
09 février 2017 à 17:00:44

oldValue -> Total avant modif des prix
newValue -> Total après modif des prix
scope.. -> scope.......

En gros à cette ligne:
$scope.$watch($scope.total, calculateDiscount);
Tu watch l'exécution de la méthode stockée dans $stock.total, et lorsqu'elle est executée tu exécutes le callback calculateDiscount avec les paramètres qui arrivent magiquement dans cet ordre

Zethag
Zethag
Niveau 10
09 février 2017 à 17:07:18

Oui mais comment on sait que newValue = total après modif et que oldValue = total avant modif?

Je ne vois nul part, par exemple : oldValue = totalAvantModif ou encore newValue = totalApresModif

Je sais pas si tu vois ce que je veux dire.. et je me doute que ma question peut surement paraitre débile :hap:

Candystand
Candystand
Niveau 10
09 février 2017 à 21:29:52

Ce sont des paramètres passés par Angular à la fonction de callback

En soit ces valeurs te sont utiles si t'as besoin par exemple de comparer l'ancienne valeur à la nouvelle, mais en général on s'en sert plus comme un listener sur le changement de valeur de ta variable

Tu auras des explications plus détaillées ici: https://docs.angularjs.org/api/ng/type/$rootScope.Scope

Zethag
Zethag
Niveau 10
09 février 2017 à 22:05:44

Je comprends pas trop..

Le $watch va observer la variable "total", c'est bien ça? Ensuite, la fonction calculateDiscount va être appelé, mais elle est appelé sans passer des arguments, donc newValue, oldValue ne valent rien?

Comment il peut appliquer la réduction si newValue ne vaut rien?

Zethag
Zethag
Niveau 10
09 février 2017 à 22:11:49

AAAAAAAAH, j'crois que j'ai pigé!

The listener is called only when the value from the current watchExpression and the previous call to watchExpression are not equal (with the exception of the initial run, see below). Inequality is determined according to reference inequality, strict comparison

En gros, la précédente valeur e la variable observée (ici, "total") est gardée en mémoire, et il observe la nouvelle valeur de total et s'il détecte un changement de valeur de la variable total, il appelle la fonction calculateDiscount? :noel:

Message édité le 09 février 2017 à 22:13:09 par Zethag
Candystand
Candystand
Niveau 10
09 février 2017 à 22:39:24

C'est ça oui, en gros si tu veux effectuer une action au moment d'un changement de valeur sur une variable, tu utilises $watch

Zethag
Zethag
Niveau 10
09 février 2017 à 23:07:49

Ca m'apprendra à ne pas lire la doc ;)

Merci :)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment