处理电子邮件确认路由的角度最佳方式

时间:2013-09-10 01:00:49

标签: angularjs angular-routing

我试图找出最好的方法来定义用户在收到的确认电子邮件中点击的路线。

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

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。谢谢!

1 个答案:

答案 0 :(得分:0)

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

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'
        }
    });
})