我建立一个自耕农应用与角度发电机。
包括在我的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>
只有当jQuery是包括前角,如果是后它不会发生,会出现问题。
正如标题状态的问题是,我得到“警告:试图装入不止一次角多”,在控制台和应用程序无法初始化。
有没有人有任何线索,为什么会发生这种情况?
我有一个单一的NG-应用程序,我包括角只有一次...一切。 它看起来不像是因为改变了脚本的位置修复它涉及到配置的东西。
难道你们有什么玄机?
有谁知道我是否能够配置到包括脚本的顺序? 由于我采用了棱角分明发电机我与usemin将此设为包括凉亭脚本。 我不知道是否有什么办法能在其中以包括脚本来指定。
这是我的项目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:
我发现,如果我有脚本这样,角将不会被包含了两次,它始终是第一次加载。
<!-- 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 -->
不是最好的解决办法,但至少现在......不管怎么说,我想有亭子里面的一切:JS标签。
长时间的测试后...它结束了,关于我的index.html文件我有一个
<ui-view />
由角UI路由器和替换它被用于此,并获得成功。
<ui-view></ui-view>
对我来说,这件事发生时,我错误引用我的观点在我的路线。
我有:
.when('/route', {
templateUrl: 'views/myPage.html',
controller : 'myCtrl'
})
但我的观点被命名views/mypage.html
该错误消息是不是我所期望的那样。 我本来期望丢失的观点错误。
这对我来说太有.NET和MVC 5,一段时间后,我意识到,在标签内:ngview
再次列为部分脚本发生在你身上。 为了解决服务器端的问题,我做的是返回局部视图。 就像是:
public ActionResult Index()
{
return View();
}
public ActionResult Login()
{
return PartialView();
}
public ActionResult About()
{
return PartialView();
}
我得到了同样的警告,这是因为这些文件中包含的顺序,以及所使用的版本。
要解决上面的警告,我重新列入下列顺序文件:
jquery.js
jqueryui.js
angular.js
注意:您要添加jquery
前的脚本标签angularjs
使angularjs可以取代jqLite
通过jQuery
。
此外,我的代码正在同AngularJS v1.2.0
,但不具有更高的角度版本。 因此,检查你的jQuery和angularjs版本的兼容性,以及。
是的,我通过排序在HTML页面中的JS脚本为了解决我的问题。
当把角JS脚本在第一顺序,不会出现这种情况了。
这是很奇怪的。
谢谢。
我面临的类似问题与电子应用工作时。 我已经包含在index.html页面和我每次来那个页面时angular.min.js,次数警告用于出现用得到double..like 1,2,4,8,16等。因此,后4/5的刷新,使用应用程序来获得超慢。 我找到了解决办法是..而是包括script标签,使用angular.min.js的要求(” ./路径/ angular.min.js');
这将加载该文件只有一次。
根据节点的文档
缓存#
模块是他们第一次加载后缓存。 这意味着(除其他事项外)每次调用需要(“富”)将得到完全相同的对象返回,如果它会解析为同一个文件。
多个调用以要求(“富”)可能不导致要多次执行该模块的代码。 这是一个重要特征。 有了它,“部分完成”对象可以返回,从而使传递依赖于被加载,即使当它们会造成循环。
下面是一个没有覆盖任何其他情况,但它导致了同样的问题,它可能被首先不会很明显:
如果使用的是咕嘟咕嘟或与角templatecache插件任何其他类似工具,所有代码合并到一个单一的文件,你需要确保的是,templatecache生成执行实际的拼接发生之前,否则你app.min。 JS不会有templatecache部分。
该Gulpfile看起来是这样的:
var paths = {
styles: 'assets/less/style.less',
scripts: 'assets/js/**/*.js',
templates: 'views/**/*.html'
}
function styles() {
return gulp.src(paths.styles)
.pipe(less())
.pipe(cleanCSS())
.pipe(gulp.dest('./assets/css/'));
}
function scripts() {
return gulp.src(paths.scripts, { sourcemaps: true })
.pipe(babel())
.pipe(uglify())
.pipe(concat('app.min.js'))
.pipe(gulp.dest('./assets/js'));
}
function templatecache() {
return gulp.src(paths.templates)
.pipe(templateCache({ module: 'ams', root: '/views/'}))
.pipe(gulp.dest('./assets/js'));
}
function clean() {
return del(['assets/js/app.min.js', 'assets/js/templates.js', 'assets/css/style.css']);
};
var build = gulp.series(clean, templatecache, gulp.parallel(styles, scripts));
关键部分是最后一行,干净templatecache执行第一然后并行的脚本和样式。 我是并行执行templatecache以及钻进重复angularjs警告。 希望它可以帮助别人。
工具Visual Studio的----只是喜欢发表意见的this`文件angularjs
<script src="~/Scripts/angular.min.js"></script>
</section>`
文章来源: WARNING: Tried to load angular more than once. when I include JQuery