2014-06-18 19 views
5

Tôi có một ứng dụng sử dụng nhà cung cấp thanh toán bên ngoài để mua tín dụng. Sau khi mua thành công, nhà cung cấp dịch vụ thanh toán sẽ chuyển hướng đến http://any.url/?orderNr=xxxx&outcome=SUCCESS. Url này là một ứng dụng AngularJS sử dụng UI Router. Các cấu hình của router là thế này:chuỗi truy vấn vị trí bộ định tuyến góc ui trước khi băm

$stateProvider 
    .state('dashboard', { 
     url: '/dashboard', 
     templateUrl: 'views/dashboard.html', 
     controller: 'DashboardCtrl', 
     isAuthenticated: true 
    }) 
    .state('login', { 
     url: '/login', 
     templateUrl: 'views/login.html', 
     controller: 'LoginCtrl', 
     isAuthenticated: false 
     }); 

$urlRouterProvider.otherwise('/login'); 

Vì vậy, khi người dùng quay trở lại vào thư mục gốc của http://any.url và đã được đăng nhập nó chuyển hướng đến bảng điều khiển. Đây là trường hợp sau khi thanh toán bởi vì bạn không thể thực hiện thanh toán mà không cần đăng nhập. Vấn đề là hashbang được đặt sau chuỗi truy vấn, vì vậy url của trang tổng quan trở thành http://any.url/?orderNr=xxxx&outcome=SUCCESS#/dashboard. Trong số DashboardCtrl Tôi không thể nhận chuỗi truy vấn bằng cách sử dụng $location.search(). Có cách nào để có được chuỗi truy vấn 'góc cạnh', do đó, không phải bằng cách phân tích cú pháp location.href ??

+0

Bạn có thể kiểm soát nơi cung cấp dịch vụ thanh toán chuyển hướng? Ví dụ: yêu cầu nhà cung cấp thanh toán chuyển hướng đến 'http: //any.url/#dashbard? OrderNr = xxxx & result = SUCCESS' – merlin

Trả lời

0

Nếu bạn cần chuỗi truy vấn cho tuyến đường #/trang tổng quan, bạn sẽ có thể chỉ định tham số trong cấu hình url.

.state('dashboard', { 
    url: '/dashboard?orderNr&outcome', 

mỗi sự docs

Các vấn đề liên quan