2013-05-10 62 views
0

我一直在開發一個新項目並且最近在項目中開始使用require.js使用requirejs時無法調用函數

這一切似乎正常工作,直到我試圖使從application.js調用dashboard.js標籤#dailyTab#weeklyTab被點擊時或訪問varialbe var a在儀表板,JS。我的代碼如下

main.js

requirejs.config({ 
    baseUrl : '../static/js/', 
    paths : { 
     'jquery' : 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min', 
     'jquery-ui' : 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min', 
     'bootstrap' : ['//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/js/bootstrap.min', 'bootstrap.min'], 
    }, 
    shim : { 
     'bootstrap' : ['jquery'], 
     'bootswatch' : ['bootstrap'], 
    } 
}); 

require(["jquery", "jquery-ui", "bootstrap", "dashboard", "application"], function($, jui, bootstrap, dashboard, application) { 
    $("#myTab a:first").tab("show"); 
}, function(err) { 
    console.log(err) 
}); 

dashboard.js

define(function() { 
    var a = 10; 
    var Reload = { 
     dailyCharts : function() { 
      console.log("Daily Charts"); 
     }, 
     weeklyCharts : function() { 
      console.log("Weekly Charts"); 
     } 
    }; 
    var Display = { 
     none : function(node) { 
      console.log("none"); 
     }, 
     block : function(node) { 
      console.log("block"); 
     } 
    } 
}); 

的application.js

define(["jquery", "dashboard"], function(jquery, dashboard) { 
    $("#dailyTab").click(function() { 
     dashboard.Reload.dailyCharts(); 
    }); 
    $("#weeklyTab").click(function() { 
     dashboard.Reload.weeklyCharts(); 
    }); 
}); 

有人能告訴我我做錯了什麼,或者我能做些什麼來解決這個問題。我接受我的編碼技能不是很好。

任何幫助,這是非常感謝。 在此先感謝

回答

2

那麼,你的dashboard.js沒有返回任何東西。 application.js將如何使用它?

define(function() { 
    var a = 10; 
    var Reload : {...}; 
    var Display : {...}; 
    //return the interface 
    return { 
     Reload : Reload, 
     Display : Display 
    } 
}); 
+0

早些時候,我試着用'return {}'把它們全部包裝起來,讓我試着把變量放在塊之外。 – shabeer90 2013-05-10 09:03:17

+0

@ shabeer90你可以返回一個引用對象。您不需要將所有代碼移動到返回的對象中。 – Joseph 2013-05-10 09:04:27

+0

好的,我現在看到你的更新代碼,讓我試試看。 – shabeer90 2013-05-10 09:05:20