2015-05-22 61 views
1

在我離子框架程序,我需要加載從啓動數據庫給予一定的條件下,一些模板。例如,如果數據庫中存儲了用戶登錄信息,則應用程序應該轉到正常模板。如果不是,它應該轉到一個模板,從用戶請求登錄憑證。我處理的條件在這樣的啓動控制器:angularjs負載模板有條件控制器

.controller('StartProcessCtrl', function ($scope,$ionicPlatform, StartProcess) { 
    $ionicPlatform.ready(function() { 
    if(StartProcess.userExists()) { 
     //load the normal template 
    } 
    else { 
    //load the credentials template 
    } 
    }); 
}) 

在這種情況下StartProcess是工廠與SQLite數據庫進行通信。

我的問題是,我使用的$urlRouterProvider喜歡這裏:

$urlRouterProvider.otherwise('/app/startProcess'); 

所以它總是以startProcess模板。我想因此,如果有憑據保存它應該與側面菜單模板等正常程序,如果沒有它應該打開證書模板而不側面菜單上的左邊得到一個層次的抽象。

+1

不知道有關的離子,但在那些角模板應在路線的決心來完成 – YOU

+0

你可以請你在展示如何使用從工廠的條件做,在路線的決心的例子嗎? – Kingalione

回答

0

一個解決方案,同時保持它在你的啓動控制器,將路由用戶使用$location服務,例如所需的位置:

.controller('StartProcessCtrl', function ($scope, $location, $ionicPlatform, StartProcess) { 
     $ionicPlatform.ready(function() { 
     if(StartProcess.userExists()) { 
      //load the normal template 
      $location.url('/user'); 
     } 
     else { 
     //load the credentials template 
     $location.url('/credentials'); 
     } 
     }); 
    }) 

以外的是,你需要使用基本在$ http服務來獲得模板,編譯並結合當前範圍(或新的範圍的話),搶在HTML容器拿着模板和手動更新模板容器。就拿對如何用這種方法做詳細看看這個SO Question