使用Angularjs确认电子邮件地址

使用Angularjs确认电子邮件地址,angularjs,angular-ui-router,Angularjs,Angular Ui Router,后端已创建用户,需要确认电子邮件,并已向该地址发送电子邮件(见下文) 请单击确认您的帐户 单击链接后,用户转到前端,我使用ui.router设置了以下路由: .state(“确认邮件”{ url“/confirmemail”, templateUrl:'client/view/confirmEmail.html'}) 如何使用上面的链接将其路由到此状态,以及如何访问用户和代码? 谢谢您可以使用stateParams: 在电子邮件中: <a href="yoururl/confirmemai

后端已创建用户,需要确认电子邮件,并已向该地址发送电子邮件(见下文)

请单击确认您的帐户 单击链接后,用户转到前端,我使用ui.router设置了以下路由:

.state(“确认邮件”{ url“/confirmemail”, templateUrl:'client/view/confirmEmail.html'})

如何使用上面的链接将其路由到此状态,以及如何访问用户和代码?
谢谢

您可以使用stateParams:

在电子邮件中:

<a href="yoururl/confirmemail/idoftheuser">Link</a>
在控制器中:

var myId = $stateParams.id;
// Then lookup user with myId

用户单击的链接应转到您的站点/确认邮件。简单地说,只需让他们导航到与您所在州的url匹配的路由即可

至于传递信息,我可以想出几个选择。您可以传递一个查询字符串,yoursite/confirmemail?userId=123或其他什么,或者您可以设置路由来传递某种id(或其他信息)。两者的结果基本相同。同样,您可以在电子邮件链接中定义该路径,然后在点击该路径时捕获它

使用角度传递id的示例:

.state('confirmemail', {
    url: '/confirmemail/:id',
    resolve: {
        id: function ($stateParams) {
            return $stateParams.id;
        }
    }
}
并设置指向yoursite/confirmemail/123的链接,其中123是用户id


从那里,您可以将id注入控制器。

如果我传递两个参数,如userid和code,那么一个简单的问题是状态上的代码是什么样子的?使用querystring样式的参数(confirmemail?id&code,而不是基本参数(/confirmemail/:id)。请参阅
.state('confirmemail', {
    url: '/confirmemail/:id',
    resolve: {
        id: function ($stateParams) {
            return $stateParams.id;
        }
    }
}