0

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

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

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

4

1 回答 1

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'
        }
    });
})
于 2013-09-10T01:56:15.573 回答