让我们假设我需要在angularJs应用程序中加载多个版本的jquery。
经过一些测试,我明白当我尝试在其中加载第二版jQuery的特定视图时,我的应用程序只使用第一个,所以我看到有一种“hack”与{{1} },但我仍然无法重现它。
我的视图代码基本上是这样的(考虑到索引中先前加载了2.1.4版本的jquery):
$timeout
我的js就是这样:
<script src="http://somepath/jquery-3.1.1.min.js"></script>
<script>
console.log( "2nd loaded jQuery version ($): " + $.fn.jquery );
jq311 = jQuery.noConflict( true );
console.log( "After $.noConflict(true)" );
console.log( "1st loaded jQuery version ($): " + $.fn.jquery);
console.log( "2nd loaded jQuery version (jq311): " + jq311.fn.jquery );
</script>
当警报到来时,在控制台中显示以下代码:
$scope.$on('$viewContentLoaded', function(event) {
$timeout(function() {
jQuery( document ).ready(function( $ ) {
alert("now loading jQuery");
console.log( " loaded jQuery version ($): " + $.fn.jquery );
});
},0);
});
我知道我在js中弄乱了什么,但我无法弄清楚是什么。 任何提示?
更新: 我现在使用ocLazyLoad
实现了第二个jQuery的加载loaded jQuery version ($): 2.1.4
但我仍然无法使用noConflict方法
这里是控制台输出:
console.log( "1st loaded jQuery version ($): " + $.fn.jquery );
$ocLazyLoad.load('somepath/jquery/jquery-3.1.1.min.js').then(function(response) {
$timeout(function() {
console.log( "2nd loaded jQuery version ($): " + $.fn.jquery );
var jq311 = jQuery.noConflict(true);
console.log( "After jQuery.noConflict(true)" );
console.log( "1st loaded jQuery version ($): " + $.fn.jquery);
console.log( "2nd loaded jQuery version (jq311): " + jq311.fn.jquery );
},0);
});
任何提示为什么我无法选择jQuery?