Angularjs为同一个州的多个网址

时间:2014-11-26 07:33:34

标签: angularjs

制作验证帐户页面,并希望能够通过网址传递电子邮件和身份验证代码,如下所示:

https://mywebsite.com/verify?email=a@a.com&code=1234

看起来我不能以角度这样做。而应该这样做:

https://mywebsite.com/verify/:email/:code

并使用$ stateParams来获取变量。

你有两个不同的URL触发相同的状态吗?因此,下面的两个URL都会触发相同的状态,并且控制器会检查变量,这是不可思议的。

https://mywebsite.com/verify
https://mywebsite.com/verify/:email/:code

2 个答案:

答案 0 :(得分:2)

您可以设置configuration,如下所示,您可以传递param required来发送url

 $stateProvider.state('verify', {
          url: '/verify?email&code',
          templateUrl: 'verify.html',
          controller: 'verifyCtrl'
        });

工作小提琴:http://plnkr.co/edit/AwHkFj?p=preview

答案 1 :(得分:1)

您可以使用搜索参数并通过email访问它们,而不是将参数code$routeParams定义为路径参数。

例如,您的路线是:

$routeProvider.when('/verify', routeConfig);

网址为:

https://mywebsite.com/verify?email=a@a.com&code=1234

在控制器中,您将注入$routeParams并通过以下方式访问:

$routeParams[email]; // = a@a.com
$routeParams[code]; // = 1234

有关$routeParams的详情,请参阅https://docs.angularjs.org/api/ngRoute/service/ $ routeParams