【问题标题】:Get routeParams value into a controller in Angular将 routeParams 值获取到 Angular 中的控制器中
【发布时间】:2016-05-05 05:45:13
【问题描述】:

我无法将 routeParams 导入 Angular 控制器。

app.controller("ReplicatedCtrl", function(ReplicatedService, $routeParams) {
  var replicated = this;

  replicated.myPhone = $routeParams.myPhone;
  console.log(replicated.myPhone); // logs undefined

我的 $roteProvider:

$routeProvider
    .when('/:myPhone', {
        templateUrl: function(attrs){
            console.log(attrs.myPhone);
            return 'pages/8week/8week-page.tmpl.html';
        },
        controller: 'EightWeekCtrl',
        controllerAs: 'eight'
    });

主控制器与我尝试将此值传递给的控制器不同。我的印象是 $routeParams 的功能很像 $scope。它只是隔离到分配给路由的控制器吗?

【问题讨论】:

  • 这意味着使用该控制器的路由没有这样的参数,或者控制器用于没有这样的参数的路由。没有你的代码,就不可能多说。
  • 你能添加你的路由器配置吗..就像@JBNizet说你可能没有在路由本身中添加一个参数..
  • $routeParam 属性在特定控制器之外是否不可用?
  • 您是否将其包含在您的配置中?
  • 没有?这是我需要做的吗?

标签: angularjs routes


【解决方案1】:

我认为您正在寻找的是 $state 值,它返回一个对象并从那里查看您需要什么。确保将其包含在您的控制器中,如下所示。让我知道是不是这样,或者我可以更新。

function ExampleCtrl($state) {
  'use strict';

  var ctrl = this;

  console.log($state);
}

// Should output something like this.
Object {
  params: Object,
  current: Object,
  $current: extend,
  transition: null
}
$current
  :
  extend
current
  :
  Object
get: (stateOrName, context)
go: go(to, params, options)
href: href(stateOrName, params, options)
includes: includes(stateOrName, params, options)
is: is(stateOrName, params, options)
params: Object
reload: reload(state)
transition: null
transitionTo: transitionTo(to, toParams, options)
__proto__: Object

【讨论】:

  • 对否决票感到好奇?我确实说过我会更新,从 OP 给我们的内容来看,他似乎在寻找 $state 和它的对象值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 2016-04-26
相关资源
最近更新 更多