2016-05-13 36 views
0

我有一個應用程序,在那裏我使用ui-routing實現頁面導航。該應用程序的第一個版本如下所示:ui-routing不會在AngularJS上加載初始化函數

登錄頁面驗證和驗證用戶,一旦批准,用戶將被路由到一個單一按鈕的歡迎頁面 - 「點擊查看圖像」(與此相關的圖像特定用戶)。一旦點擊,該按鈕將用戶路由到他/她可以查看與該特定用戶相關的圖像的頁面。我這樣做是通過觸發一個ng-init()函數來實現的,該函數將REST調用發送到後端,而不需要用戶任何手勢。這個版本效果很好。

在當前版本中,我意識到歡迎頁面是多餘的,並且希望直接從登錄頁面到圖片加載頁面實現路由而無需點擊任何按鈕。在這種情況下,我不得不將REST調用觸發到後端,而沒有任何頁面。問題是,沒有出現。這次ng-init()函數不會觸發。登錄後出現的頁面仍然是空的,控制檯上沒有錯誤,我只是不明白什麼是錯誤的。就好像路由需要在登錄頁面與實際應用功能之間的頁面。當我獨立於登錄頁面(使用完整路徑而非路由相對路徑)加載「圖像加載」頁面時,它確實呈現圖像。但是,當我通過路由服務停止工作時。總之,獨立的網絡鏈接工作,但「僞裝」的路由鏈接沒有。

我意識到的一件事是,包含圖片加載頁面控件的.js頁面甚至沒有被讀取,即使它在html頁面中被正確指定。這裏的代碼中的相關部分:

app.js(路由):

function() { 
 
    'use strict'; 
 

 
    angular 
 
     .module('myApp', ['ngRoute', 'ngCookies']) 
 
     .config(config) 
 
     .run(run); 
 

 
    config.$inject = ['$routeProvider', '$locationProvider']; 
 
    function config($routeProvider, $locationProvider) { 
 
     $routeProvider 
 
      /*.when('/', { 
 
       controller: 'HomeController',  
 
       templateUrl: '../loginapp/home/home.view.html', 
 
       controllerAs: 'vm' 
 
      })*/ 
 

 
      .when('/landing', { //welcome page 
 
       controller: 'GeneralController', 
 
       templateUrl: '../html/landingpage.html', 
 
       controllerAs: 'vm' 
 
      }) 
 

 
      .when('/load', {  //image load page 
 
       controller: 'HomeController', 
 
       templateUrl: '../html/load.html', 
 
       controllerAs: 'vm' 
 
      }) 
 

 

 
.........

在不工作的頁面,沒有太多的方面表現出碼。一切都很簡單(並且在沒有鏈接到路由器時工作)我基本上在我的html頁面上聲明一個控制器,並通過它調用ng-init()函數..

有什麼想法嗎?

回答

0

您在登錄控制器中使用$ location.path('/ landing')嗎?