更新dom后,RequireJS不会加载模块

时间:2016-09-14 13:19:07

标签: javascript angularjs dom requirejs

我有两个独立的(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']);
});

0 个答案:

没有答案