使用$ timeout在angularJs中加载第二个版本的jquery

时间:2017-08-02 08:59:57

标签: jquery angularjs timeout

让我们假设我需要在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?

0 个答案:

没有答案