2015-02-02 2 views
0

Я вручную загружаю свое приложение, чтобы я мог выполнить проверку сеанса cookie на сервере, а затем продолжать только перезагрузку, если у пользователя есть действительный сеанс.Как вручную загрузочное приложение ссылается на модуль в отдельном файле

Код:

angular.module('ppMobi', []) 
      .controller('firstCtrl', function ($scope) { 
       $scope.loggedIn = true; 
       $scope.foo = "Session Valid"; 
      }); 

      angular.element(document).ready(function() { 
       var initInjector = angular.injector(["ng"]); 
       var $http = initInjector.get("$http"); 
       //This will return a promise on success or failure and provided user has a valid session we can then take them to the app 
       //that is manually bootstrap our app. 
       return $http.get("/session/GetSession.json").then(function (response) { 
        if (response.data.success) { 
         console.log("Session found!"); 
         angular.bootstrap(document, ["ppMobi"]); 
        } else { 
         window.location = "/login.html"; 
        } 
       }, function (errorResponse) { 
        console.error("Session not found!"); 
       }); 
      }); 

Это работает, как ожидалось, но сейчас я хотел бы, чтобы переместить модуль \ определение контроллера в отдельный файл.

Я попытался это уже и добавил скрипт включают в файл только после того, как основные Lib включают, так что теперь у меня есть:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular.min.js"> 
     </script> 
     <script src="app/app.js"></script> 
     <script type="text/javascript"> 



      angular.element(document).ready(function() { 
       var initInjector = angular.injector(["ng"]); 
       var $http = initInjector.get("$http"); 
       //This will return a promise on success or failure and provided user has a valid session we can then take them to the app 
       //that is manually bootstrap our app. 
       return $http.get("/session/GetSession.json").then(function (response) { 
        if (response.data.success) { 
         console.log("Session found!"); 
         angular.bootstrap(document, ["ppMobi"]); 
        } else { 
         window.location = "/login.html"; 
        } 
       }, function (errorResponse) { 
        console.error("Session not found!"); 
       }); 
      }); 
     </script> 

приложение/app.js

angular.module('ppMobi', []) 
.controller('firstCtrl', function ($scope) { 
    $scope.loggedIn = true; 
    $scope.foo = "Session Valid"; 
}); 

Но кажется, что готовый обработчик на документе уже не пойман, поскольку не делается никаких $ http, так что я явно что-то сломал (без ошибок в консоли)

Подходит ли мой подход к восприятию е? - пожалуйста, порекомендуйте! Благодаря

ответ

0

ОК, так что я ответил на мой собственный вопрос ...

я просто переместил документ готового кода обработчика в мой app.js, так что теперь я первоначально имел в моем основном файле HTML в соответствии с моим первым фрагмент кода - это все мои app.js и включение в файл после включения библиотеки.

Он все еще работает нормально для меня, таким образом,

Смежные вопросы