【问题标题】:confirm email address using Angularjs使用 Angularjs 确认电子邮件地址
【发布时间】:2015-12-31 02:45:57
【问题描述】:

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

请点击确认您的帐户

点击链接后,用户转到前端,我使用 ui.router 进行了以下路由设置:

.state('确认邮件', { 网址'/确认电子邮件', templateUrl: 'client/view/confirmEmail.html' })

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

【问题讨论】:

    标签: angularjs angular-ui-router


    【解决方案1】:

    您可以使用 stateParams:

    在电子邮件中:

    <a href="yoururl/confirmemail/idoftheuser">Link</a>
    

    在您的配置中:

    .state('confirmemail', { url'/confirmemail/:id', ... })
    

    在您的控制器中:

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

    【讨论】:

    • 一个简单的问题,如果我传递两个参数,如用户 ID 和代码,状态代码会是什么样子?
    • 使用查询字符串样式参数(confirmemail?id&code 代替基本参数 (/confirmemail/:id)。见github.com/angular-ui/ui-router/wiki/…
    【解决方案2】:

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

    至于传递信息,我可以想到几个选项。您可以传递一个查询字符串,yoursite/confirmemail?userId=123 或其他任何内容,或者您​​可以设置您的路线以传递某种 id(或任何可能的信息)。两者都会有基本相同的结果。同样,您可以在电子邮件链接中定义它,然后在命中该路径时捕获它。

    使用 angular 传递 id 的示例:

    .state('confirmemail', {
        url: '/confirmemail/:id',
        resolve: {
            id: function ($stateParams) {
                return $stateParams.id;
            }
        }
    }
    

    并将链接设置为 yoursite/confirmemail/123,其中 123 是用户 ID。

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

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2016-12-29
      • 1970-01-01
      • 2017-07-23
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 2019-01-06
      相关资源
      最近更新 更多