【问题标题】:How to access URL Parameters within a service instead of controller in AngularJS?如何在服务中访问 URL 参数而不是 AngularJS 中的控制器?
【发布时间】:2025-12-04 04:10:02
【问题描述】:

作为问题状态,找出控制器外部 URL 中的查询参数的最佳方法是什么?我可以看到有一个 $routeParams 和 $location 服务似乎是您可以附加到控制器的服务,但我想让它在应用程序首次初始化时,服务从服务中获取数据以初始化其内容。我如何在不通过控制器的情况下访问参数?这不是一个好习惯吗?

据我了解,服务首先初始化,这就是为什么我希望能够在创建控制器之前获取数据。

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    您可以将 Angular 服务($location 是其中之一)注入 Angular 的任何组件 - 服务、控制器、指令等,并使用 $location.search() 将查询字符串作为对象访问。

    Angular 控制器仅用于数据绑定,不应该关心其他任何事情。您听起来像是担心在控制器之外做事,但实际上恰恰相反。很多人将控制器用于不该做的事情。

    您的问题似乎也与服务是单例相关,并且它们的单个实例将在第一次需要时创建。换句话说,如果您从不注入您的服务之一,就没有它的实例。

    【讨论】: