5

// index.html
<html ng-app="app">

// app.js
angular.module('app', 'test-module')

如果我没有在我的任何脚本中注册测试模块,如下所示:
angular.module('test-module', [])

我将在浏览器中收到以下错误,整个网站将无法加载
未捕获错误:[$injector:modulerr] 无法实例化模块应用程序,原因是:
错误:[$injector:modulerr] 无法实例化模块测试模块由于:
错误: [$injector:nomod] 模块 'test-module' 不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。


问:如何确保网站页面即使在出现任何未知模块加载错误的情况下也能加载?

4

2 回答 2

0

我认为你应该从另一个角度看待这个问题。

如果您在开发过程中使用测试模块(用于测试的模块)。您可以配置后端以在多个环境中工作。例如devtestprod。您可以处理子域并决定后端需要加载哪些模块。dev.yourdomain.com(用于开发环境)、yourdomain.com(用于生产环境)和test.yourdomain.com(用于品尝)。

您可以生成这样的脚本:

<script type="text/javascript">
    var MyModules = ['test-module'];
</script>

并这样处理:

angular.module.apply(angular, 'app', MyModules);
于 2013-11-12T09:30:01.207 回答
0

我找到了你的答案:)

Angular 对每个模块都有一系列需求,所以如果你想使用这个模块,你可以轻松地推送一些需求。

在你的情况下,你可以这样做

//index.html
<html ng-app="app">

//app.js
angular.module('app', [])

//test-module.js
angular.module('test-module', [])
angular.module('app').requires.push('test-module');

因此,如果您将 test-module.js 加载到浏览器,您会自动将依赖项注入您的应用程序。

于 2013-12-12T07:55:40.593 回答