我有一个angularJS前端,我想将我的用户重定向到外部支付处理器,然后返回(例如www.mysite.com/purchase/152398978981/success)。 有效的方法是:我将重定向网址传递给付款处理程序,然后重定向到该网址。
什么行不通:当重定向回来时,angularJS应用程序需要加载并在完成后进入默认/欢迎页面。
如果之后,我将重定向网址粘贴到地址栏中,一切正常,因为该应用已经加载。
即使应用需要加载,有没有办法保留重定向网址?
编辑:
这是我如何进行路由的缩写版本。有问题的路线是之前的最后一条路线,否则'即何时(' / sofort /:websafeProductKey')
var app = angular.module('myApp',
['productControllers', 'ngRoute', 'ui.bootstrap', 'firebase', 'ngTouch', 'ngResource']).config(['$routeProvider',
function ($routeProvider) {
$routeProvider.when('/product/create', {
templateUrl: '/partials/create_product.html',
controller: 'CreateProductCtrl'
}).when('/product/detail/:websafeProductKey', {
templateUrl: '/partials/product_detail.html',
controller: 'ProductDetailCtrl'
}).when('/checkout', {
templateUrl: '/partials/paymill.html'
}).when('/landing/', {
templateUrl: '/partials/landing.html'
}).when('/auth', {
templateUrl: '/partials/auth.html'
}).when('/sofort/:websafeProductKey', {
templateUrl: '/partials/sofort_success.html',
controller: 'SofortCtrl'
}).otherwise({
redirectTo: '/landing'
});
}]);
这是我加载Google API的方式,我写道:
<script>
/**
* Initializes the Google API JavaScript client. Bootstrap the angular module after loading the Google libraries
* so that Google JavaScript library ready in the angular modules.
*/
function callGoogleApis() {
// Loads the goal APIs asynchronously
var apisToLoad;
var googleCallback = function () {
if (--apisToLoad == 0) {
//Manual bootstraping of the application
var $injector = angular.bootstrap(document, ["myApp"]);
console.log("myApp bootstrap complete " + gapi);
}
};
apisToLoad = 1; // must match number of apis to load - currently a bit redundant
gapi.client.load('myApi', 'v1', googleCallback, '//' + window.location.host + '/_ah/api');
}
</script>
<script src="//apis.google.com/js/client:plusone.js?onload=callGoogleApis"></script>