【问题标题】:Angular JS Base Href loading a page on second time doesn't workAngular JS Base Href 第二次加载页面不起作用
【发布时间】:2019-12-24 07:29:43
【问题描述】:

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

控制器

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

在这里,我需要从应用程序外部的位置加载 c2runtime.js 文件,因此我使用 OCLAZYLOAD 在动态设置基本 href 后加载它。这是因为 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中的data.js基于基本href路径完美加载。但是,当我按下后退按钮并再次单击路由链接时,未设置基本 href。 (c2runtime.js 的 data.js 从项目绝对路径加载,而不是从基础 href 加载)。 这里可能有什么问题?

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

【问题讨论】:

    标签: javascript html angularjs construct-2


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-09
      • 2014-11-12
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      相关资源
      最近更新 更多