bonjour les amis,
j'ai un soucis, à chaque changement de page, ma requête à l'API REST est effectuée 2 fois même parfois 3 fois.
j'ai 3 pages, à chaque page je fais une requête API REST via $http dans une factory pour récupérer des données.
chaque controller fait donc appelle à cette factory et passe les données à la vue.
la factory Product:
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 'use strict'; angular.module('starter') .factory('Product', function($http) { Product.products = []; Product.getAll = function() { return $http.get('http://apirest-xxxxxxxx/api/v1/produits') // FAIT 2 fois .success(function(data) { Product.products = data; }); }; ... return Product; });
mon controller :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'use strict'; starter.controller('ProductShowAllController', function($scope, Product) { this.products = Product.products; Product.getAll() .then(function() { this.products = Product.products; console.log(this.products); // }.bind(this)); ...
app.js avec les routes :
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 var starter = angular.module('starter', ['ngRoute']); starter.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/home', { templateUrl: 'views/home.html', controller: 'HomeController' }). when('/produits', { templateUrl: 'views/produits.html', controller: 'ProductShowAllController' }). ....
via firebug, je regarde donc le reseau et je vois à chaque changement de page; 2 fois la même requête effectuée.
et console.log(this.products); est exécuté 2 fois, j'ai 2 lignes
une idée ?
Partager