2012-04-23 78 views
2

我坐在我的第一次嘗試實施Require.js,雖然我試圖遵循這兩個教程(herehere)我不完全得到它的工作。這是我到目前爲止有:如何讓jquery-mobile和dependend插件與require.js一起工作?

裏面我索引文件

<script type="text/javascript" data-main="../js/main" src="../js/libs/require/require.js"></script> 

main.js

require.config({ baseUrl: "../js/", 
    paths: {  
    "jq-loader": "libs/jquery/jquery", 
    "jqm-loader": "libs/jquery-mobile/jquery-mobile", 
    "someplug":  "libs/someplug/somplug", 
    } 
}); 
// define app and dependencies??? - not sure what goes here? All plugins I'm using? 
require(['app','order!libs/jquery/jquery', 'order!libs/jquery-mobile/jquery-mobile'], 

function(App){ 
    App.start(); 
    }); 

的jquery.js

define([ 'order!libs/jquery/jquery.min' ], function(){ return $; }); 

裏面的jquery.js(這取決於jQuery的)

// ERROR here in "mobile" being undefined 
define(['order!libs/jquery-mobile/jquery-mobile.min'], function(){ return mobile; }); 

而且app.js

define([ 'jq-loader', 'jqm-loader'], function($, mobile){ 
    var start = function() { 
    $(document).ready(function() { 
     alert("Hello world!"); 
     }) 
     } 
    return {"start":start}; 
    }); 

我很高興到目前爲止,我已經做到了,但真的很喜歡看到所有的點擊。現在,我收到錯誤手機沒有定義在我的jquery-mobile.js文件中。我猜是因爲jquery-mobile並不屬於它所在的位置......

有人可以點亮一些燈嗎?非常感謝!

編輯:
這裏是我的sample setup

回答

6

的鏈接在我看來,在那一刻JQM只是一無所知的jQuery。所以你得到一個錯誤。如果要使用這樣的加載器,也許需要在一個require塊中加載jquery。比在回調加載jqm時多使用一個要求。 但是你不需要這些包裝器加載器來加載jquery和jqm。

在主js在第一次加載jQuery,比jqm。這就夠了。你也不必在你的app.js中定義它們。

Main.js應該是這個樣子:

require.config({ baseUrl: "../js/", 
    paths: { 
    "app": "path to app", 
    "jquery": "path to jquery", 
    "jqm": "path to jqueryMobile", 
    "someplug":  "libs/someplug/somplug", 
    } 
}); 
require(['order!jquery', 'order!jqm', 'app'], 

function(jquery, jqm, App){ 
    App.start(); 
    }); 

而且你app.js:

define([], function(){ 
    var start = function() { 
    $(document).ready(function() { 
    alert("Hello world!"); 
    }) 
    } 
    return {"start":start}; 
    }); 

請讓我知道,如果它不會幫助並上傳你的源代碼的地方。 此致敬禮。

+0

感謝迄今。現在試試這個。如果它不起作用,我會再次發佈。 – frequent 2012-04-23 22:03:49

+0

好的。我仍然得到我的錯誤在jquery-mobile.js中,返回「移動」未定義...我有什麼要回到這裏?我也提供源代碼。將是一分鐘。 – frequent 2012-04-23 22:11:19

+0

我的意思是,你應該刪除你的裝載機,並在配置中提供路徑jquery.min和jquery-mobile.min庫。 – sleepwalker 2012-04-23 22:29:53