Bonjour à tous,

Dans mon header de page, j'affiche le {{ first_name + last_name }} se trouvant dans $scope du module User :
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
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
var app = angular.module('User', ['ngCookies']);
app.controller('ControllerUser', function($scope, $http, $window, $cookies)
{
  var ApiKey = $cookies.get('api_key');
  console.log(ApiKey);

  $http(
    {method: 'GET',
    url: 'http://exmp.com:1337/user',
    headers: {	'Authorization': ApiKey}
  }).success(function (data){
    $scope.first_name = data.first_name;
    $scope.last_name = data.last_name;
  }).error(function (data){
    console.log("/user error");
    $scope.first_name = "Bienvenue";
    $scope.last_name = "visiteur";
    $scope.message = "Impossible d'afficher vos informations.";
  });

  app.service('myService', function() {
    this.recupData = function () {
        return data;
    }
  });

  $scope.UpdateUser = function () {
   $http(
    {method: 'POST', 
    url: 'http://exmp.com:1337/user',
     headers: {	'Authorization': ApiKey},
    data :{
        "user":{
           "first_name": $scope.first_name,
           "last_name": $scope.last_name,
          }
        } 
  }).
   success(function(response, data) {
	   location.reload();
  }, function(response) {
    console.log("FAIL");
  });
 };
 
});
Ces données sont donc affichées en haut de chaque page.
Le site web est en single page.

Le problème : dans l'un de mes templates, je veux ré-afficher {{ first_name + last_name }} alors que je suis dans le module DetailRequest:
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var app = angular.module("DetailsRequest", ['ngCookies', 'ngRoute', 'User']);
app.controller("ControllerDetailsRequest", function($scope, $cookies, $routeParams, $http, myService){

  var ApiKey = $cookies.get('api_key');
  var request_id = $routeParams.aideid;

  $http(
    {method: 'GET',
    url: 'http://exmp.com:1337/request',
    headers: {'Authorization': ApiKey },
    params: {id: request_id}
  }).success(function (data) {
    console.log(typeof data.skills);
    $scope.aide_name = data.name;
    $scope.aide_description = data.description;
    $scope.aide_date = data.date;
    $scope.aide_skills = data.skills; 
    
    $scope.ex = myService.recupData(); // Récupération de "data" via le service
    console.log(ex);
  }).error(function (data) {  
  })

  $scope.Report = function () {
   $http(
    {method: 'POST', 
    url: 'http://exmp.com:1337/report',
    headers: {'Authorization': ApiKey },
    data :{
     "message": "",
     "request_id": request_id
   }
   }).success(function (){
    }).error(function (response){
    });
  };
});
Il me semble donc qu'il faut utiliser un service pour transférer les données du module User à DetailRequest.
Le code en rouge est ma création du service ainsi que ses injections et appel.
Rien ne fonctionne

J'obtiens l'erreur :
angular.js:12416Error: [$injector:unpr] http://errors.angularjs.org/1.4.5/$injector/unpr?p0=myServiceProvider%20%3C-%20myService%20%3C-%20ControllerDetailsRequest
at Error (native)




De plus, autre problème où je n'ai pas trouvé de réponse du internet:
Etant donné une page HTML où se trouve le <ng-view> et qui donc appel les templates et les charge, nommée main.html
Comment faire que main.html n'apparaisse pas dans l'URL

http://main.html#/rubrique/1/page3 ==> actuellement
http://rubrique/1/page3 ==> ce que je souhaiterais.

Merci à tous pour votre aide et votre temps.