重定向至JS函数(Ionic,AngularJS)之后的另一个html页面-Cordova

Redirect to another html page after JS function (Ionic, AngularJS) - Cordova

本文关键字:之后 另一个 html -Cordova 页面 AngularJS JS 函数 Ionic 重定向      更新时间:2023-09-26

我正在使用Ionic和AngularJS为visual studio使用cordova工具构建一个android应用程序。

我想在我的函数执行完毕后重定向到另一个html页面,但我似乎无法让它工作。

的功能如下

        if (id == null || id == undefined) {
            contact.save(saveSuccess, saveError);
        }
        else {
            contact.save(upSuccess, upError);
        }
        function saveSuccess(newContact) {
            id = newContact.id;
            table.insert({ contactid: id, firstname: name.givenName, lastname: name.familyName, homephone: phoneNumbers[0].value, mobilephone: phoneNumbers[1].value, email: emails[0].value });
            alert("Contact Saved.");
            window.location("#/managermenu");
        }

这是我的$routProvider代码。

droidSync.config(function ($routeProvider) {
    $routeProvider
    .when('/', {
        templateUrl: 'app/pages/main.html',
        controller: 'mainController'
    })
    .when('/addcontact', {
        templateUrl: 'app/pages/addcontact.html',
        controller: 'managerController'
    })
    .when('/editcontact', {
        templateUrl: 'app/pages/editcontact.html',
        controller: 'managerController'
    })
    .when('/deletecontact', {
        templateUrl: 'app/pages/deletecontact.html',
        controller: 'managerController'
    })
    .when('/managermenu', {
        templateUrl: 'app/pages/managermenu.html',
        controller: 'managermenuController'
    })
    .when('/settings', {
        templateUrl: 'app/pages/settings.html',
        controller: 'settingsController'
    });
});

我对angular和JS都很陌生,所以我不知道我在这里缺少了什么。。。

尝试$state。这行得通吗?

function saveSuccess(newContact, $state) {
        id = newContact.id;
        table.insert({ contactid: id, firstname: name.givenName, lastname: name.familyName, homephone: phoneNumbers[0].value, mobilephone: phoneNumbers[1].value, email: emails[0].value });
        alert("Contact Saved.");
        $state.go('/managermenu');
    }

也需要一个状态提供者

.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider
  .state('managermenu', {
    url: '/managermenu',
      views: {
        'managermenu': {
          templateUrl: 'templates/managermenu.html',
          controller: 'ManagerMenuCtrl'
        }
      }
    });
});

使用$location而不是$state。

function saveSuccess(newContact, $state) {
    id = newContact.id;
    table.insert({ contactid: id, firstname: name.givenName, lastname: name.familyName, homephone: phoneNumbers[0].value, mobilephone: phoneNumbers[1].value, email: emails[0].value });
    alert("Contact Saved.");
    $location.path('/managermenu'); 
}

路线提供商:

.config(function ($routeProvider) {
$routeProvider
 .when('/managermenu', {
    templateUrl: 'app/pages/managermenu.html',
    controller: 'managermenuController'
   }); 
});

您也可以使用$location.path("/managermenu")来代替$state;用于重定向到另一个状态。