【问题标题】:Angularjs $routeParams issueAngularjs $routeParams 问题
【发布时间】:2016-07-21 22:56:19
【问题描述】:

我正在努力让 $routeParams 工作。我想要做的是使用包含在 url 链接中的电子邮件地址填充取消订阅字段。我正在使用 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 应该如何工作?

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    您尝试访问的 url 与 $routeparams 表中的给定路由不匹配。您应该尝试导航app/#/unsubscribe/some_text$routeparams 会明白 email 是 some_text

    【讨论】:

    • 谢谢,我很接近但最后放错了拼图!
    • 你只比我晚 0.02,你的回答得到了接受,很好:) +1
    【解决方案2】:

    由于你的 URL 是在路由器中配置的,所以你在浏览器中的 URL 应该在下面,那么只有你可以从 $routeParams 获取 email 值作为 some_text

    myURL/app/#/unsubscribe/some_text
    

    【讨论】:

      【解决方案3】:

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

      最重要的是,路由器尝试将 url 的路径部分(不包括 ?…)与已知路由列表相匹配,在这种情况下,已知路由列表仅包括 /unsubscribe/:email

      因此,要使$routeParams 中的控制器可以使用电子邮件参数,您应该将浏览器指向myURL/app/#/unsubscribe/some_text

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-12
        • 2015-11-08
        • 1970-01-01
        • 1970-01-01
        • 2013-11-27
        • 1970-01-01
        • 2012-07-17
        • 2017-03-14
        相关资源
        最近更新 更多