制作验证帐户页面,并希望能够通过网址传递电子邮件和身份验证代码,如下所示:
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
答案 0 :(得分:2)
您可以设置configuration
,如下所示,您可以传递param
required
来发送url
$stateProvider.state('verify', {
url: '/verify?email&code',
templateUrl: 'verify.html',
controller: 'verifyCtrl'
});
答案 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