2017-02-21 106 views
0

我有以下的代碼,但我仍然試圖去掌握Angular UI Router。我有一個父母狀態,所以我可以使用resolve調用一個函數,並將其應用於其所有孩子。我的問題是,這個代碼create-prealert.html沒有出現,EnterDataController沒有發射。Angular UI路由器不加載子模板UIr

正在發生的事情是,兩個警報發生,然後沒有更多。

我可以確認一切都很好,一旦我刪除父母狀態或如果我刪除parent : app,

背後是如何工作,我失蹤的基礎?

我覺得沒有其他代碼的需要,因爲每個事情都是完美的,當不試圖與父母國家的任何事情。

編輯:我也可以確認它與resolve無論在哪種狀態。我嘗試了沒有他們,仍然是同樣的問題。

$stateProvider 
      .state('app', { 
       controller: 'MainController as data', 
       resolve: { 
        checkAuth: ['Auth','$timeout',function(Auth, $timeout){ 
         return $timeout(function(){ 
           alert('This is the alert for the parent state'); 
          } 
          , 500 
         ); 
        }] 
       } 
      }) 
      .state('prealert', { 
       parent : 'app', 
       url: '/create-prealert', 
       templateUrl: 'views/create-prealert.html', 
       controller: 'EnterDataController as data', 
       resolve: { 
        checkAuth: ['Auth','$timeout',function(Auth, $timeout){ 
         return $timeout(function(){ 
           alert('This is the alert for the child state'); 
          } 
          , 500 ...loading... 
         ); 
        }] 
       } 

      }) 
      .state('received', { 
       url: '/received', 
       templateUrl: 'views/received.html', 
       controller: 'EnterDataController as data' 
      }); 
    }); 

回答

0

我解決了這個問題,至少在某種程度上我明白了一些事情。

我試圖放入其他模板來查看會發生什麼,並且一旦它加載了模板,就意識到一切都很好。

然後我創建了一個parent.html文件,其中包含<div ui-view></div>,它工作。我忍不住想我接近這一切都是錯誤的。但無論如何它爲我工作。

 .state('app', { 
      templateUrl: 'views/parent.html', 
      controller: 'MainController as data', 
      resolve: { 
       checkAuth: ['Auth','$timeout',function(Auth, $timeout){ 
        return $timeout(function(){ 
          alert('This is the alert for the parent state'); 
         } 
         , 500 
        ); 
       }] 
      } 
     }) 
相關問題