我在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`
答案 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');