在angular应用中动态设置基URL
Set base URL dynamically in angular app
我正在做一个AngularJS项目。我使用$locationProvider.html5mode()从URL中删除了#。
根据环境,我希望基本标签的href属性从配置文件动态更新。我创建了一个包含简单配置的env.js。
js
(function (window) {
window.__env = window.__env || {};
window.__env.baseUrl = '/';
window.__env.enableDebug = true;
}(this));
我在app.js中使用了这个env文件,并在app.run()中更新了$rootScope。在env.js中将baseurl转换为baseurl。它在console.log()中工作得很好,但在我的index.html中不行。我得到未编译的代码,即{{ $rootScope.baseurl }}
app.js
import controllers from './controllers';
var env = {};
if (window) {
Object.assign(env, window.__env);
}
var app = angular.module('myapp', ['ui.router', controllers]);
app.constant('__env', env);
app.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider.state("home", {
url: "/",
templateUrl: "app/components/home/home.view.html",
controller: "HomeController"
}).state("login", {
url: "/login",
templateUrl: "app/components/login/login.view.html",
controller: "LoginController"
});
$locationProvider.html5Mode({
enabled: true,
requireBase: true
});
});
app.run(function($rootScope, __env){
$rootScope.baseurl = __env.baseUrl;
console.log($rootScope.baseurl);
});
index . html
<html ng-app="myapp">
<head>
<title>MYAPP</title>
<base href="{{ baseurl }}">
</head>
<body>
<div ui-view>
</div>
</body>
<script type="text/javascript" src="public/lib/js/angular.min.js"></script>
<script type="text/javascript" src="public/lib/js/angular-ui-router.min.js"></script>
<script type="text/javascript" src="env.js"></script>
<script type="text/javascript" src="public/app.js"></script>
</html>
请帮帮我。由于
你不能使用angular来设置它,因为它需要在任何请求页面资源(如脚本,样式表,图像等)之前设置,因为你使用的是相对路径
您可以尝试用以下内容替换<base>
:
<script type="text/javascript" src="env.js"></script>
<script>
document.write('<base href="' + window.__env.baseUrl + '" />');
</script>
或
<script type="text/javascript" src="env.js"></script>
<base id="base">
<script>
document.getElementById('base').href = window.__env.baseUrl;
</script>
相关文章:
- 如何使用 Ruby 在 Javascript (js.erb) 中设置 url
- 这个关键字位于$.ajax()中,用于调用其他函数来设置url
- 设置 URL 以在 Django 模板中加载 iframe
- jQuery ticker - 如何为 #ticker 标题设置 URL
- 在Aurelia中设置URL而不刷新整个模板
- 如何使用jquery ajax在离线网站中设置url
- 根据复选框检查并设置url变量
- 在窗口中预先设置URL.打开函数jQuery
- 在.htaccess中设置URL重写规则后javascript文件和css文件的路径
- 使用javascript设置URL中隐藏参数的值
- 在JavaScript中为jsoup设置url
- 正在设置URL中的请求标头
- 正在根据滚动到的部分设置url哈希
- JavaScript 根据索引设置 URL
- IE不能设置url,而Chrome可以
- 如何使用Vue- router在Vue中设置URL查询参数
- jqGrid设置URL为自定义按钮
- 模型.保存设置url并在成功时进行回调
- PHP全局设置URL并在每个页面中调用它
- 如何通过PHP设置URL