我看过一个使用 MVC 的例子。 它有一个返回URL,该URL带有一个从发送的电子邮件中调用的屏幕。但是我有一个SPA AngularJS应用程序,所以它有点不同。有没有人尝试过使用 SPA 来做到这一点,如果是的话,他们是如何实施它的。任何指示将不胜感激。
正在做同样的事情; 需要更多的工作来使其漂亮等等,但希望你能得到大致的想法。
确认 URL 如下所示:
http://localhost:8000/app.html#/confirm/9a28aa89e84e80153b1f2083d38911acbae12e8365dd13c83cee55f79481e1f8
(本地主机:8000,因为我正在测试)。然后我有一条 ui 路由器的路由:
var confirm = {
name: 'confirm',
url: '/confirm/:auth',
templateUrl: 'app/front/partial/confirm.html',
params: {auth: {}}
} ;
$stateProvider.state(confirm) ;
确认.html部分(显然需要充实一点!)是:
<div ng-controller="Fapi.Front.Confirm.Ctrl">
CONFIRM
</div>
控制器是:
angular.module('myApp')
.controller('App.Front.Confirm.Ctrl', [
'$scope', '$state', '$stateParams', 'toaster', 'MyDataService',
function ($scope, $state, $stateParams, toaster, MyDataService) {
MyDataService.confirm (
{auth: $stateParams.auth},
function (data) {
toaster.pop('success', 'Your registration has been confirmed') ;
setTimeout(function () { $state.go('login') }, 5000) ;
},
function (data) {
toaster.pop('error', data.message) ;
}
)
}]) ;
MyDataService只是一个将$http调用包装到服务器的服务。
因此,与 URL 在服务器上调用执行工作的脚本,然后呈现"您已确认"(或未确认)页面的"通常"情况不同,路由器将浏览器带到一个页面,然后对服务器进行 AJAX 调用以进行确认。