我有两个独立的(Angular)应用程序,并希望从一个应用程序导航到另一个应用程序(由于模块化而且没有两个应用程序的所有权,它不是一个大的Angular应用程序)。
由于我想避免页面重新加载(包括可见的闪烁),当我想从应用程序1转换到该应用程序时,我使用ajax获取应用程序2的完整内容。之后,我用新获取的内容替换完整的DOM这样:
document.replaceChild(newNode, document.documentElement);
其中newNode是保存新内容的节点。新内容大致如下:
<html>
<head>
<meta charset="utf-8">
<script src="/lib/requirejs/require.js"></script>
<script src="main.js"></script>
<script>
require(['apptwo/app']);
</script>
</head>
<body>
<ui-view></ui-view>
</body>
DOM看起来与我重定向到应用程序2时完全相同(并且使用正常的重定向,它完美无瑕),但不幸的是,当我更换DOM时,不知道requirejs拒绝加载我的应用程序:
AppSwitcher.js:101 Uncaught Error: Load timeout for modules: apptwo/app
有没有人知道为什么RequireJS无法以这种方式加载模块?
编辑:apptwo / app的内容如下所示:
/// <amd-dependency path="angular"/>
/// <amd-dependency path="angular-ui-router"/>
define(["require", "exports", 'angular'], function (require, exports, angular) {
'use strict';
var ngModule = angular.module('apptwo', ['ui.router']);
//declaration of some controllers and such
angular.bootstrap(document, ['apptwo']);
});