2013-07-08 74 views
1

我正在使用以下代碼Html加載我需要的腳本。我得到$爲未定義。它無法加載jquery。與require.js一起使用時,jquery未加載

我該如何得到這個工作。

<html> 
<head> 
<title>Using The Text Plugin With RequireJS</title> 
<script data-main="Scripts/init type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.6/require.min.js"></script> 
<script type="text/javascript" language="javascript"> 

    require(['jquery', 'knockout-2.2.1', 'Template', 'text!Template.htm'], function ($, ko, t, temp) { 

     $("body").append(temp); 
     //make this new template engine our default engine 
     ko.setTemplateEngine(t.myExternalTemplateEngine(t.templates)); 

     ko.applyBindings(t); 

    }); 
</script> 
</head> 

代碼在Init.js在一個單獨的文件

require.config({ 
baseUrl:'Scripts', 
paths: { 

    'jquery': '//cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.js', 
    'knockout-2.2.1': '//cdnjs.cloudflare.com/ajax/libs/knockout/2.2.1/knockout-min.js', 
    'knockout.mapping-latest': '//cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.3.5/knockout.mapping.js', 
    'Template': 'Template', 
    'text': '//cdnjs.cloudflare.com/ajax/libs/require-text/2.0.5/text', 
    'domready': '//cdnjs.cloudflare.com/ajax/libs/require-domReady/2.0.1/domReady.js' 
    } 

}); 
+0

您是否嘗試使用jQuery而不是$ sign? – Damian0o

+0

您可能會遇到在您的腳本使用它之前未加載init.js的問題。見[這個答案](http://stackoverflow.com/questions/17026036/require-js-bug-random-failed-to-load-resource/17044595#17044595)。你有什麼其他的錯誤在控制檯? – explunit

回答

2

從路徑配置中刪除的.js:

paths: { 
    'jquery': '//cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery' 
} 

中號礦石詳細信息this example repo

+0

良好的捕獲 - 沒有看到。但無論如何,腳本加載方法會根據時間點發生一些隨機錯誤。見上面鏈接的問題。 – explunit

+0

好的一點,將它封裝在'require(['init'])'將停止競爭條件的問題。 –