javascript - Multiple views, multiple resolve but for one controller in AngularJS -


i have 2 views share same controller. in each 1 of view used resolve retrieve date before displaying it. inject in controller (so inject 2 dependancy each view).

but problem when go view another, console display error because doesn't see dependancy other view. route configuration

 .state('ambassade', {                  url: '/mot_ambassadeur',                  views: {                      "@": {                          templateurl: "pages/gestionambassade/mot_ambassadeur.html",                          controller: "gestionambassadecontroller",                          resolve: {                              informationsambassade: function(gestionambassadeservice) {                                  return gestionambassadeservice.getmotambassadeurservice();                              }                          }                      }                  }              })              .state('personnel', {                  url: '/personnel',                  views: {                      "@": {                          templateurl: "pages/gestionambassade/personnel.html",                          controller: "gestionambassadecontroller",                          resolve: {                              personnelambassade: function(gestionambassadeservice) {                                  return gestionambassadeservice.getpersonnelservice();                              }                          }                      }                  }              })

this controller, 2 injections informationsambassade , personnelambassade :

 .controller('gestionambassadecontroller', function ($rootscope, $scope, $injector, $sce,                                                          informationsambassade,                                                          personnelambassade) {            $scope.getmotambassadeur = function () {              if (localstorage.getitem("lang") == "fr") {                  $scope.motambassadeur = $sce.trustashtml(informationsambassade.contents[0].translation.fr_fr.contenu);                  $scope.load = true;              }              $scope.photoambassadeur = informationsambassade.contents[0].content.path;            };            $scope.getpersonnel = function () {              $scope.personnels = [];              if (localstorage.getitem("lang") == "fr") {                  (var = 0; < personnelambassade.contents.length; i++) {                      //if ( angular.isdefined(res.contents[i].type) && res.contents[i].type.nom == 'personnel' )                      $scope.personnels.push({                          nom: $sce.trustashtml(personnelambassade.contents[i].translation.fr_fr.contenu),                          poste: $sce.trustashtml(personnelambassade.contents[i].translation.fr_fr.titre)                      });                  }                  $scope.load = true;              }          };

so when go ambassade route doesn't see personnalambassade injection , vice-versa. know can use 2 resolves each state i'm avoiding performance purpose. can me figure out "issue".

you should create top abstract state resolve datas, sure load right dependencies (both of them) when in controller.

.state('app', {     abstract:true,     template:'<div ui-view></div>',     resolve:{         informationsambassade: function(gestionambassadeservice) {             return gestionambassadeservice.getmotambassadeurservice();         },         personnelambassade: function(gestionambassadeservice) {             return gestionambassadeservice.getpersonnelservice();         }     } } .state('app.ambassade', {     url: '/mot_ambassadeur',     views: {         "@": {             templateurl: "pages/gestionambassade/mot_ambassadeur.html",             controller: "gestionambassadecontroller"             }         }     } }) .state('app.personnel', {     url: '/personnel',     views: {         "@": {             templateurl: "pages/gestionambassade/personnel.html",             controller: "gestionambassadecontroller"         }     } }) 

Comments

Popular posts from this blog

sequelize.js - Sequelize group by with association includes id -

android - Robolectric "INTERNET permission is required" -

java - Android raising EPERM (Operation not permitted) when attempting to send UDP packet after network connection -