【发布时间】:2014-05-20 17:06:04
【问题描述】:
我正在构建一个带有角度生成器的 yeoman 应用程序。
我的 index.html 文件中包含的 js 库是:
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/modernizr/modernizr.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
<script src="bower_components/d3/d3.js"></script>
<script src="bower_components/select2/select2.js"></script>
<script src="bower_components/angular-ui-select2/src/select2.js"></script>
只有在 before angular 中包含 jquery 时才会出现问题,如果在它之后则不会发生。
标题指出的问题是我在控制台中收到 “警告:尝试多次加载 angular”,并且应用程序无法初始化。
有人知道为什么会发生这种情况吗?
我有一个单一的 ng-app,我只包含了 angular 一次......以及所有内容。它看起来与配置无关,因为更改脚本的位置可以修复它。
你们有什么线索吗?
有谁知道我是否能够配置为包含脚本的顺序?当我使用 angular-generator 时,我已经使用 usemin 进行了设置,以包含 bower 脚本。我想知道是否有任何方法可以指定包含脚本的顺序。
这是我的项目的 bower.json 文件:
{
"name": "<name>",
"version": "0.0.0",
"dependencies": {
"angular": "1.2.15",
"json3": "~3.2.6",
"es5-shim": "~2.1.0",
"angular-ui-router": "~0.2.10",
"modernizr": "~2.8.1",
"d3": "~3.4.6",
"angular-ui-select2": "~0.0.5"
},
"devDependencies": {
"angular-mocks": "1.2.15",
"angular-scenario": "1.2.15"
}
}
我试图在谷歌中搜索但没有运气。 提前致谢!
更新 1:
我刚刚发现,如果我以这种方式包含脚本,angular 将不会被包含两次,并且总是首先加载。
<!-- build:js scripts/vendor.js -->
<script src="bower_components/angular/angular.js"></script>
<!-- bower:js -->
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/modernizr/modernizr.js"></script>
<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
<script src="bower_components/d3/d3.js"></script>
<script src="bower_components/select2/select2.js"></script>
<script src="bower_components/angular-ui-select2/src/select2.js"></script>
<!-- endbower -->
不是最好的解决方案,但至少目前是这样……无论如何,我希望将所有内容都包含在 bower:js 标记中。
【问题讨论】:
-
我曾经遇到过同样的问题,它发生在使用 grunt build 构建后缩小时路由路径损坏时。这意味着应用程序一遍又一遍地调用根路径,因此 AJS 被一遍又一遍地加载。是否使用 JQuery 将任何内容附加到 DOM 可能导致此问题?
-
一年后节省了我的一天;)订购解决方案适合我
标签: angularjs bower yeoman-generator-angular