gpt4 book ai didi

javascript - 延迟加载时模块错误

转载 作者:行者123 更新时间:2023-11-29 17:10:40 25 4
gpt4 key购买 nike

我正在尝试通过阅读此 POST 来延迟加载文件.但无法实现。我在 Firebug 中收到“模块错误”错误。

这是我的项目结构:

root
|----app
|----script.js
|----app.js
|----appBootstrap.js
|----login
|----login.html
|----login.js
|----vendor
|----angular.min.js
|----angular-route.min.js
|----index.html

index.html代码:

<!DOCTYPE HTML>
<html ng-app="myApp">
<head>

</head>
<body ng-view="">

<!-- javascript files-->
<script type="text/javascript" rel="javascript" src="app/vendor/angular.min.js"></script>
<script type="text/javascript" rel="javascript" src="app/vendor/angular-route.min.js"></script>
<script type="text/javascript" rel="javascript" src="app/script.js"></script>
<script type="text/javascript" rel="javascript" src="app/appBootstrap.js"></script>

</body>
</html>

app.js 代码:

(function()
{
var myApp = angular.module('myApp',[]);

myApp.config(function($routeProvider, $controllerProvider, $filterProvider, $provide)
{
myApp.controllerProvider = $controllerProvider;
myApp.compileProvider = $compileProvider;
myApp.routeProvider = $routeProvider;
myApp.filterProvider = $filterProvider;
myApp.provide = $provide;

$routeProvider.when('/', {templateUrl:'login/login.html', resolve:{ deps: function($q, $rootScope)
{
var deferred = $q.defer();
// Add dependencies here
var dependencies =
[
'login/login.js'
];

$script(dependencies, function()
{
// all dependencies have now been loaded by $script.js so resolve the promise
$rootScope.$apply(function()
{
deferred.resolve();
});
});

return deferred.promise;
}}});
});
})();

appBootstrap.js 代码:

$script(['app.js'], function()
{
angular.bootstrap(document, ['myApp'])
});

当我尝试在浏览器中加载根文件夹时,出现以下错误

Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.13/$injector/modulerr?p0=myApp&p1=Error%3A%…calsearch_new%2Fbranches%2Fb1.0%2Fapp%2Fvendor%2Fangular.min.js%3A32%3A232) 

有人可以解释一下我做错了什么吗?

更新 1: 按照@kartikluke 的建议添加了 ngRoute 文件 (angular-route.min.js),但仍然显示相同的错误,但现在出现了两次

最佳答案

好吧,我按照错误中的链接

Module Error
error
Description
This error occurs when a module fails to load due to some exception. The error message above should provide additional context.

在 AngularJS 1.2.0 及更高版本中,ngRoute 已移至其自己的模块中。如果您在升级到 1.2.x 后遇到此错误,请确保您已安装 ngRoute。

添加ngRoute

好吧,它似乎不是 ngRoute。

如果您不确定缺少哪个模块,请使用未缩小的 angular.js,它会给出一条可读的错误消息:"Error: [$injector:nomod] Module 'ngRoute' is not available!你要么拼错了模块名称或忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。”

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.13/angular.js"></script>
<script type="text/javascript" rel="javascript" src="app/vendor/angular-route.js"></script>
<script type="text/javascript" rel="javascript" src="app/app.js"></script>
<script type="text/javascript" rel="javascript" src="app/script.js"></script>
<script type="text/javascript" rel="javascript" src="app/appBootstrap.js"></script>`

好的,我查看了您的代码,发现在替换为未压缩的代码并将 app.js 添加到脚本后,我发现未注入(inject)模块 $compileProvider。

enter image description here

myApp.config(函数($routeProvider, $controllerProvider, $filterProvider, $provide, $compileProvider)

最后很简单。使用 cdn 和 unminified 代码会给你正确的错误。

关于javascript - 延迟加载时模块错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21901922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com