【问题标题】:Accessing routeparams from multiple controllers in AngularJS从 AngularJS 中的多个控制器访问路由参数
【发布时间】:2013-10-10 04:36:21
【问题描述】:

在我的路由中,我进行了设置,以便为控制页面的一个部分的路由“/:id”调用 Controller1。但是,我还需要 Controller2 中的 :id 路由参数。如何在 Controller2 中也访问该信息?

我正在使用 $routeProvider 服务来访问 Controller1 中的路由参数。这将在 Controller2 中返回一个空对象。

编辑:

我创建了一个演示来更好地说明我的问题。我想从 2 个控制器访问 $routeParams,但它只能被 Controller2 识别。

https://dl.dropboxusercontent.com/u/11600860/angular/index.html#/4445

如果您查看控制台,routeParams 仅由 Controller2 而非 Controller1 登录到控制台。有什么想法吗?

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    您的演示不再存在,但我遇到了类似的问题,并在 AngularJS: Read route param from within controller 找到了相关答案。一般问题(在我的情况下)是当控制器最初加载并尝试访问单个值时,$routeParams 尚未加载。

    为了解决这个问题,我能够在ng-init 上执行一个控制器方法,此时我可以成功访问任何$routeParams

    【讨论】:

      【解决方案2】:

      查看$routeParams 服务,这应该可以满足您的需求。我目前正在将它注入到一个页面上的多个控制器中,并像访问 $routeParams.id 一样轻松地访问 :id 参数。

      【讨论】:

      • 我确实将 $routeParams 注入到两个控制器中,但它只包含在我的 $routeProvider 配置中指定的控制器的参数。我需要另一个控制器中的参数。
      • 我对原始帖子进行了编辑,以通过演示说明我的问题。
      • 该链接对我不起作用,它只是挂起。可以在 jsfiddle、plunker 或 jsbin 上设置吗?
      • 不,我无法在其中一个上复制相同的行为,因为我需要 URL 访问权限
      • $routeParams 在另一个控制器中也对我不起作用,除了 $routeProvider 指定的控制器。仍在寻找解决方案
      猜你喜欢
      • 2013-08-15
      • 2013-04-22
      • 1970-01-01
      • 2018-12-23
      • 2014-03-02
      • 2017-09-16
      • 2017-05-10
      • 1970-01-01
      相关资源
      最近更新 更多