在 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'
});
});
我正在使用 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'
});
});