2011-11-28 73 views
0

我需要加载jQuery1.7的模块,我见过的@jrburke验证码:Requirejs不从CDN加载jquery1.7作为模块

requirejs.config({ 
    paths: { 
    'jquery' : 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min' 
    } 
}); 

require(['jquery'], function($) { 
    //$ points to jQuery 
}); 

这不是对我来说是非常有用的,因为所有的.js名称是由服务器端生成的,我从php-array获取它们。

所以,我写了这个:

require(['http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js'], 
     function($) { 
    //$ points to jQuery 
}); 

$为null,该函数内。

UPDATE

这是我的PHP的模板,使我的JS-脚本此页:

<script src="http://requirejs.org/docs/release/1.0.1/minified/require.js"> 
</script> 

<script> 
    require([ 
     <?php echo "'". implode("',\n\t'", $this->scripts) . "'\n"; ?> 
    ], function($){ 

     console.warn ($); // null ;(

     // loaded jQuery 
     window.$ = $; 

     // Load main client script for this page 
     boot('<?php echo $this->eprint($this->content_page); ?>'); 

    }); 
</script> 

,这是我的PHP阵列此页面(index页):

$scripts = array(
    'http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js', 
    'http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js', 
    '/js/libs/jquery.history.js?v=1321687090', 
    '/js/libs/coolclock.js?v=1321629683', 
    '/js/libs/excanvas.js?v=1321629683', 
    '/js/client.modules.js?v=1321703735', 
    '/js/client.all.js?v=1322512192', 
    '/js/boot.js?v=1322512037', 
    '/js/client.index.js?v=1321689884' 
); 
+0

可能重复(http://stackoverflow.com/questions/8070959/sourcing-jquery-from-a-cdn) – Bevan

回答

1

的形式为你的PHP数组:

$jquery = array (
    'jQuery' => 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js' 
); 

然后尝试:

requirejs.config({ 
    paths: <?php echo json_encode($jquery) ?> 
}); 

require(['jquery'], function($) { 
    //$ points to jQuery 
}); 
[?采购的jQuery从CDN]的
+0

我我更新了我的问题。增加'php'代码 –

+1

@Innuendo只是让它变成现实,你的生活将会变得更加简单:-) – Neal

+0

所以我可以在'requirejs.config'的'paths'道具中添加我的数组的每个元素?这很正常,并非所有的都是模块化的,不是吗? –

相关问题