【问题标题】:Angular best way to handle email confirm routeAngular 处理电子邮件确认路由的最佳方式
【发布时间】:2013-09-10 11:23:28
【问题描述】:

我正在尝试找出定义用户将在收到的确认电子邮件中单击的路径的最佳方法。

我已经定义了这样的路径。

app.config(function ($routeProvider, $locationProvider, $httpProvider) {
    $routeProvider.when('/app/setup/confirm/:code',{
        // code is $routeParams.code
    });
});

需要做的是:

  • 对 api 资源进行 $http 调用,将代码记录为 点击并确认电子邮件地址
  • 让用户同时登录 api 和前端
  • 现在用户的电子邮件已得到确认,让用户返回设置过程的下一步。
  • 如果代码是伪造的并且 $http 调用返回 false,则将它们重定向到注册页面。

因为这条路线不需要模板,所以我不知道在哪里放置代码来执行此操作。如果我只定义了一个控制器,它永远不会被实例化,直到我还定义了一个模板??

例如,这是可行的

app.config(function ($routeProvider, $locationProvider, $httpProvider) {
    $routeProvider.when('/app/setup/confirm/:code',{
            controller: function($routeParams){
                console.log($routeParams.code);
            },
            template: function(){
                return '<html></html>';
            }
    });
});

但是,一旦我删除了template,甚至在模板中返回了一个空字符串,控制器就不起作用了。必须有正确的方法来做到这一点,而这感觉不像。

谁能给我指点?我正在使用 v1.1.2。谢谢!

【问题讨论】:

    标签: angularjs angular-routing


    【解决方案1】:

    您应该能够在不指定模板的情况下将请求解析到控制器。试试这个模式:

    app.factory('myService', function () {
        return 1;
    });
    
    app.controller('MyCtrl', function ($scope, myService) {
        console.log(myService);
    });
    
    app.config(function ($routeProvider) {
        $routeProvider.when('/app/setup/confirm/:code', {
            resolve: {
                redirect: 'MainCtrl'
            }
        });
    })
    

    【讨论】:

    • 使用这种定义控制器的模式我得到一个Error: Unknown provider: 错误。 :(
    猜你喜欢
    • 2010-09-17
    • 2010-09-21
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    相关资源
    最近更新 更多