Javascript AngularJS无法加载模块
编辑:这只发生在IE上(在IE10上测试) 我有一个应用程序,最初可以正常加载,但刷新时会出现以下错误:Javascript AngularJS无法加载模块,javascript,html,angularjs,Javascript,Html,Angularjs,编辑:这只发生在IE上(在IE10上测试) 我有一个应用程序,最初可以正常加载,但刷新时会出现以下错误: var mod = angular.module("blah"); // <-- wrong SCRIPT5022:无模块:myAppModule myAppModule是在app.js中定义的angular模块,在加载angular.js后加载 angular.module('myAppModule', []); 并通过以下方式自动引导: <html ng-app="my
var mod = angular.module("blah"); // <-- wrong
SCRIPT5022:无模块:myAppModule
myAppModule是在app.js中定义的angular模块,在加载angular.js后加载
angular.module('myAppModule', []);
并通过以下方式自动引导:
<html ng-app="myAppModule">
脚本加载方式如下(无AMD加载程序):
window.jQuery||
文件。写入(“”)
窗角||
文件。写入(“”)
我估计angularjs会先加载,然后自动引导应用程序,但是app.js还没有加载好的,我不知道为什么自动引导会失败,但是如果我手动引导应用程序,它会正常工作 e、 g
...
引导(文档,['myAppModule']);
我也有同样的问题,只是在IE9中。IE的较低版本和较新的浏览器一样工作正常
手动引导解决了这个问题,但为属于我的模块的筛选器抛出了一个错误“未知提供程序”。请注意,过滤器似乎仍按预期运行
最后,解决我的问题并停止抛出错误的解决方案是简单地将模块文件重命名为与模块相同
因此,如果我的模块名是
myAppModule
,那么文件名应该是myAppModule.js
,而不是myapp\u module.js
,当我发现自己做错了什么时,我觉得自己像个白痴,但如果你和我一样,那么首先要检查以下几点:
var mod = angular.module("blah", []);
mod.filter("filterName", function(){ ... });
有一次,我在启动模块时忘记了空括号,因此该行看起来像这样,并抛出了以下错误:
var mod = angular.module("blah"); // <-- wrong
var mod=angular.module(“blah”);// 顺便说一下,使用Angular 1.0.6,在Angular(硬编码脚本标记)之前加载jQuery会导致IE10抛出“无模块”错误
我能找到的唯一纠正方法是手动引导,并确保定义模块的app.js在所有其他子模块引用(如Barnabas所述)后加载。我们只有在IE中遇到相同的问题。这是由键入错误引起的(某些cat一定踩到了键盘):
type属性值中的前导空格是导致问题的原因。当它被删除后,应用程序再次正常运行
app.config(['$stateProvider', ($stateProvider) => {
$stateProvider.state('login', {
url: '/login',
templateUrl: 'partials/login.html'
}).state('dashboard', {
url: '/dashboard',
templateUrl: 'partials/dashboard.html'
})
}])
在我的例子中,Internet Explorer不喜欢箭头功能。将这些更改为function(){}表示法解决了以下问题:
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider.state('login', {
url: '/login',
templateUrl: 'partials/login.html'
}).state('dashboard', {
url: '/dashboard',
templateUrl: 'partials/dashboard.html'
})
}])
嗯,这很奇怪,AngularJS通常会在完全加载后启动boostraping模块。你能分享一些更多的信息吗:使用的浏览器,加载纸条的方法(一个简单的纸条标签或AMD)链接到应用程序,更多的代码等。一个plunk将是理想的。编辑。我相信AngularJS在app.js有机会加载之前已经完全加载了?这是可能的吗?出于好奇:你能试着用一个常规标记加载jquery和angular吗?是的,我试着在本地加载它们,而不是通过CDN,但仍然是一样的,所以这只发生在我部署到远程Web服务器时。。。在本地运行似乎很好,除了偶尔发生的情况。。。我再次计算了加载AngularJS和app.js之间的延迟,因此这是使用ng app
?是的。。。var myAppModule=angular.module(“myAppModule”,[]);myAppModule.controller(“purchaseController”,函数($scope){….})angular.bootstrap(文档,['myAppModule']);
app.config(['$stateProvider', ($stateProvider) => {
$stateProvider.state('login', {
url: '/login',
templateUrl: 'partials/login.html'
}).state('dashboard', {
url: '/dashboard',
templateUrl: 'partials/dashboard.html'
})
}])
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider.state('login', {
url: '/login',
templateUrl: 'partials/login.html'
}).state('dashboard', {
url: '/dashboard',
templateUrl: 'partials/dashboard.html'
})
}])