Angularjs $ routeParams问题

时间:2016-07-21 14:49:27

标签: angularjs

我正在努力让$ routeParams工作。我想要做的是使用电子邮件地址填充取消订阅字段,该地址包含在网址链接中。我正在使用AngularJS并且在阅读了主题之后似乎是$ routeParam是要走的路但是我无法让它工作

我的HTML:

        <form class="form-signin" name="regForm">
                 <input type="email" id="email" name="email" class="form-control" ng-model="user.email">
       </form>

我的.config与$ routeProvider

    .config(['$routeProvider',  function ($routeProvider) {
$routeProvider
     .when('/unsubscribe/:email', {
         templateUrl: 'unsubscribe/unsubscribe.html',
         controller: 'unsubscribeCtrl'
     })
 }]);

我的.controller与$ routeParams

.controller('unsubscribeCtrl', ['$scope', '$location', '$routeParams', function ($scope, $location, $routeParams) {

   var param1 = $routeParams.email

   console.log(param1)
 }]);

现在,当我导航到myURL / app /#/ unsubscribe?email = some_text时,浏览器仍为空白,我在控制台中没有出现任何错误。我错误地理解$ routeParams应该如何工作?

3 个答案:

答案 0 :(得分:1)

您尝试访问的网址与myURL/app/#/unsubscribe/some_text 表格中的指定路线不匹配。您应该尝试导航$routeparamsapp/#/unsubscribe/some_text会理解电子邮件是some_text

答案 1 :(得分:0)

由于您的网址是在路由器中配置的,因此您在浏览器中的网址应该低于此值,那么只有您email的{​​{1}}价值为some_text

$routeParams

答案 2 :(得分:0)

$routeParams由路径中嵌入的命名参数填充(例如,在/unsubscribe/:email中,:email是将要提取的参数。)

最重要的是,路由器尝试将网址的路径部分(没有?…)与已知路由列表匹配,在这种情况下只包含/unsubscribe/:email

因此,要在$routeParams中为控制器提供电子邮件参数,您应该将浏览器指向myURL/app/#/unsubscribe/some_text