2016-08-23 61 views
0

我有一個使用Ionic和angularJS創建的移動應用程序。在應用程序中,我使用websql數據庫在device.when中本地保存數據。回調),我需要移動到另一個網頁(主頁)。這是不callback.can發生有人幫我想出解決辦法。(即時通訊使用apprey建立我的申請異步重定向在Ionic移動應用程序中使用AngularJS回撥

下面是我的javascript函數調用與因爲websql的本質是異步的。

var logbool; 
ValidateUserLocalCookie(success,function(isLogged) 
{ 

    console.log("Logged"+isLogged); 


    **Apperyio.navigateTo("Home", {});///---this function should redirect to home** 
}); 

以下是websql函數。

function ValidateUserLocalCookie(success,callbackFunc) 
{ 
logbool=false; 
    db = openDatabase(shortName, version, displayName, maxSize); 
    db.transaction(function(tx) 
    { 
     var boole=false; 
    tx.executeSql('select * from Userlog;',[],function(tx,table){ 
       console.log(table.rows.length); 
       if(table.rows.length>0){ 

        logbool=true; 
     callbackFunc(logbool); 
       } 
       else{ 

        logbool=false; 
    callbackFunc(logbool); 
       } 


    }); 

    }); 


} 

回答

0

默認情況下,Ionic應用程序使用ui路由器。利用它。你應該有一個在你的路由器代碼中預定義的狀態列表。

一旦完成,只需將$ state服務注入到控制器中即可。在回調內部,使用它來設置你的狀態。以下是一些類似的代碼。

function saveClass() { 
    $log.log('Saving class.'); 

    ClassService.save(vm.class) 
    .then(function() { 
     $state.go('tabsController.classes'); 
    }) 
    .catch(function (err) { 
     $log.log(err); 
    }); 
} 

我的ClassService調用了一個異步數據庫函數,我已經將它公開爲承諾。你也可以使用回調。保存完成後,我致電$state.go(<state-name>);如果發生錯誤,我會保持在同一頁面上。

+0

謝謝你的回覆我真的很新的離子應用程序和angular.let我試着讓你知道。 – mzonerz

+0

如果您可以使用承諾而不是回調,您的生活將會非常順利。 :) – MikeC

相關問題