Angular JS Base Href 第二次加载页面不起作用



我在使用AngularJS应用程序时遇到了一个非常奇怪的问题。 我正在动态尝试将基本 href 标签单独应用于特定路由,以便在这些路由模板中动态加载 JS 文件。 出于这个原因,我想出了一个解决方案。

控制器

$scope.baseHrefDynamic = 'test/' + $rootScope.testActive + '/';
$ocLazyLoad.load('test/' + $rootScope.testActive + '/c2runtime.js');

在这里,我需要从应用程序外部的位置加载 c2runtime.js 文件,因此我在动态设置基本 href 后使用 OCLAZYLOAD 加载它。这是因为 c2runtime.js 文件有一个 data.js 文件,该文件仅动态加载,并且根据项目的绝对路径加载。 在我的 HTML 中,我有以下标记

.HTML

<html>
<base href="{{baseHrefDynamic}}">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

实际问题

我面临的问题是加载模板后的路由第一次完美地设置了基本 href,在 c2runtime 内.js数据.js根据基本 href 路径完美加载。但是,当我按下后退按钮并再次单击路由链接时,未设置基本 href。(c2runtime.js的数据.js从项目绝对路径而不是基本 href 的路径加载(。 这里可能有什么问题?

基本 href 在第一次路线更改时完美运行,但当我返回并再次回到同一路线时不起作用。

我们可以对设置项使用本地存储而不是$rootScope

localStorage.setItem('testActive', 'testUrl');

当您在从本地存储获取值之前调用 baseHrefDynamic 时。

let value=localStorage.getItem('testActive');
$scope.baseHrefDynamic = 'test/' + value + '/';
$ocLazyLoad.load('test/' + value + '/c2runtime.js');

最新更新