首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angularjs无法使用URLencoded $routeParams从$routeParams URL中读取参数

Angularjs无法使用URLencoded $routeParams从$routeParams URL中读取参数
EN

Stack Overflow用户
提问于 2015-01-23 05:37:23
回答 2查看 603关注 0票数 1

我已经在我的应用程序中配置了这样的路径:

代码语言:javascript
复制
$routeProvider
    .when('/', {action: 'account_landing_page'})
    .when('/:resource/:id/:extrajson', {action: 'open_resource'})
    .when('/:resource/:id', {action: 'open_resource'})
    .otherwise({redirectTo: '/'})

如果url包含:extrajson,我希望能够执行不同的操作。所以我有一个网址:xyz/dashboard/1/%7B%22screen_shot_mode%22%3A%20%22on%22%7D

当这个URL加载时,它会丢失所有被用户编码的额外参数,并变成:xyz/#/dashboard/1

有人能告诉我我在这里做错了什么吗?谁能解释一下为什么会发生这种事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-23 06:01:59

以下是一些可以帮助您理解的代码片段。

代码语言:javascript
复制
  when('/search/:someid', {
    templateUrl: 'partials/qviewplaceholder.html',
    controller: 'Myctrl as somectrl'
  }).

注意":someid“部分。在控制器下面会看到这个。

代码语言:javascript
复制
app.controller('Myctrl', ['$routeParams',function($routeParams) {
this.somedata = $routeParams.someid;
/*controller logic that uses $routeParams.someid for it's logic*/
}]);

现在您有了一个模板partials/qviewplaceholder.html,以及通过$routeParams传递给它的一个变量。$routeParams变量通常是一些可以用来指向某个对象的id。然后相应地显示数据。另外,这里有一个演示$routeparams使用的视频。https://www.youtube.com/watch?v=ziUelciLL5Q

票数 0
EN

Stack Overflow用户

发布于 2015-01-23 05:43:29

这些参数是URL路径的一部分。因此,它将/:resource/:id/:extrajson/foo/bar/baz匹配,其中$routeParams被解析为:

代码语言:javascript
复制
{
  "resource": "foo",
  "id": "bar",
  "extrajson": "baz"
}

https://docs.angularjs.org/api/ngRoute/service/$routeParams

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28103692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档