在AngularJS控制器中获取对基本URL的引用

时间:2016-01-03 08:59:00

标签: angularjs

我在AngularJS中使用HTML5模式,并且在我的HTML文件的<base href="/some/base/path" />部分中定义了<head>

在AngularJS中读取此值的最佳方法是什么?我知道你可以用jQuery读取这个HTML标签,但有些东西告诉我这不是最优雅的方式。

我想要实现的目标

我想从控制器动态编写URL。例如,当前页面为http://localhost/myapp/some/custom/page/,其中http://localhost/myapp是基本网址。我想通过执行以下操作在角度控制器中构建http://localhost/myapp/another/page url

baseUrl + `/another/page`

1 个答案:

答案 0 :(得分:1)

AngularJS并不具备从标签中提取属性的任何功能。但是,有一种解决方法。但是我在答案底部添加的纯JavaScript方式可能是最适合您的解决方案。

我们假设您更改了基本标记:

<base ng-controller="MyController" data-href="/some/base/path">

在您的控制器中,您可以执行以下操作来访问data-href:

app.controller('MyController', function ($scope, $attrs) {
  console.log($attrs.href); // Prints '/some/base/path'
});

或者你可以在纯JavaScript中使用:

var url = document.getElementsByTagName('base')[0].getAttribute('href');