Vis*_*mar 2 javascript angularjs
我试图通过阅读此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
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
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;
}}});
});
})();
Run Code Online (Sandbox Code Playgroud)
appBootstrap.js代码:
$script(['app.js'], function()
{
angular.bootstrap(document, ['myApp'])
});
Run Code Online (Sandbox Code Playgroud)
当我尝试在浏览器中加载根文件夹时,出现以下错误
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)
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下我做错了什么吗?
更新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.
Run Code Online (Sandbox Code Playgroud)
In AngularJS 1.2.0 and later, ngRoute has been moved to its own module. If you are getting this error after upgrading to 1.2.x, be sure that you've installed ngRoute.
添加ngRoute
好吧所以它似乎不是ngRoute.
如果您不确定缺少哪个模块,请使用未缩小的angular.js,它会给出一个可读的错误消息: "Error: [$injector:nomod] Module 'ngRoute' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument."
<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>`
Run Code Online (Sandbox Code Playgroud)
好吧,我查看了你的代码,我发现在用未经编码的代码替换并将app.js添加到脚本后,我发现模块$ compileProvider没有被注入.

myApp.config(function($routeProvider, $controllerProvider, $filterProvider, $provide, $compileProvider)
最后很简单.使用cdn和未明确的代码将为您提供正确的错误.
| 归档时间: |
|
| 查看次数: |
2003 次 |
| 最近记录: |