如何使用 $location 在工厂中获取当前 url 的协议主机和端口

Posted

技术标签:

【中文标题】如何使用 $location 在工厂中获取当前 url 的协议主机和端口【英文标题】:How do I use $location to to get the protocol host and port of my current url in a factory 【发布时间】:2014-10-02 03:00:12 【问题描述】:

如何获取当前 url 的当前协议主机和端口?

app.factory('actionTypeFactory', ['$resource', function($resource, $location)
  return $resource($location.protocol() + '://'+ $location.host() +':'+  $location.port()  +'82/somelocation')
]);

我希望网址看起来像这样: http://localhost:80 /somelocation

【问题讨论】:

我收到一个错误 - TypeError: Cannot read property 'protocol' of undefined 请更新此内容,因为这将有助于其他人寻找答案。谢谢 【参考方案1】:

您必须注入 $location 服务,这就是它未定义的原因:

app.factory('actionTypeFactory', ['$resource', '$location', function($resource, $location)
  return $resource($location.protocol() + '://'+ $location.host() +':'+  $location.port()  +'82/somelocation')
]);

【讨论】:

为什么不直接使用$location.absUrl() 你是对的,但那是 copypasta 只是为了包含缺少的依赖项@IslamWazery :) 无论如何,最好在你的回答中提出建议。 参考这里了解更多信息 [docs.angularjs.org/api/ng/service/$location]

以上是关于如何使用 $location 在工厂中获取当前 url 的协议主机和端口的主要内容,如果未能解决你的问题,请参考以下文章

如何使用js获取修改URL

如何获取当前位置android?

如何在android应用程序中获取当前位置?

js使用正则获取当前页面url指定参数

前端使用js如何准确获取当前页面url网址信息

使用融合的 Location Provider 获取当前位置