Notation angulaire des points meilleure explication

Je cherchais une solution à propos des données de vote en utilisant AngularJS et j'ai trouvé ici à stackoverflow.

Dans cette solution (montré ci-dessous), il est utilisé un objet javascript pour retourner la réponse ( data.response ) et si j'essaie de remplacer cet objet de data par un tableau javascript simple, il ne fonctionne pas , j'aimerais savoir exactement pourquoi Faut-il passer avec la notation par points et pourquoi un seul tableau ne fonctionne pas? (Ce serait d'excellents liens ou des explications avec des exemples)

 app.factory('Poller', function($http, $timeout) { var data = { response: {}, calls: 0 }; var poller = function() { $http.get('data.json').then(function(r) { data.response = r.data; data.calls++; $timeout(poller, 1000); }); }; poller(); return { data: data }; }); 

Essayer de résumer mon objectif (ce que je veux vraiment comprendre): où est var data = { response: {}, calls: 0 }; Pourrait être var data = {}; Et ensuite la response.data serait réglée directement sur data data = r.data et return {data: data}; , Pourquoi dois-je compter sur la notation des points?

Disons que si nous changeons l'usine de cette manière:

 app.factory('Poller', function($http, $timeout) { var d = {}; var poller = function() { $http.get('data.json').then(function(r) { d = r.data; $timeout(poller, 1000); }); }; poller(); return d; }); 

Dans le contrôleur, la déclaration $scope.data = Poller; Assigner un objet d à $ scope.data, de sorte que la relation d'objet soit comme celle-ci après l'initialisation

 $scope.data -> d -> r.data 

Lorsque poller () est appelé à nouveau en 1 sec, d est remplacé par un nouvel objet, de sorte que la relation d'objet sera

 $scope.data -> d* -> r.data (d* is a new object) 

De sorte que la liaison de données angularjs sera rompue car il n'y a aucun moyen de suivre les r.data puisque d * est un tout nouvel objet avec un prototype différent.

Avec la notation de points, après l'initialisation, la relation d'objet ne change jamais puisque les appels périodiques à poll () ne créent pas un nouvel objet d mais il conserve la mise à jour du champ de réponse avec un nouvel objet r.data .

 $scope.data -> d.response -> r.data