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

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

我正在使用 Ionic 和 AngularJS 在 cordova 工具中为 visual studio 构建一个 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.path("/managermenu"); 而不是 $state用于重定向到另一个状态。

使用 $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'
   }); 
});