【问题标题】:How do I use $location to to get the protocol host and port of my current url in a factory如何使用 $location 在工厂中获取当前 url 的协议主机和端口
【发布时间】: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
  • 请更新此内容,因为这将有助于其他人寻找答案。谢谢

标签: angularjs location factory


【解决方案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]
猜你喜欢
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
相关资源
最近更新 更多