我的設置至今:如何使用RequireJS與淘汰賽
<script src="/common/js/require.configure.js"></script>
<script src="/common/js/lib/require.js" data-main="/common/js/app.js"></script>
require.configure.js
var require = {
baseUrl: '/',
paths: {
"jquery": "/common/js/lib/jquery",
"fastclick": "/common/js/lib/fastclick",
"knockout": "/common/js/lib/knockout",
"common": "/common/js/scripts/common"
}
};
前三名的路徑顯然只是我使用我的應用程序庫。最後文件「通用」是通用於我的應用程序,例如打開主菜單,給出的信息給用戶,或結合處理功能的集合,等
app.js
define(["jquery", "knockout", "fastclick", "common"], function(){
});
我知道requireJS總是需要最初運行的數據主文件。但是,上面的代碼實際上做了什麼?我試圖在線上學習教程,但它並沒有幫助。我猜測,通過在數組中定義這些字符串,它會在配置文件中查找它並加載到這些文件中,但是如何訪問或使用這些文件?我猜我可以簡單地「要求」那些相同的字符串,他們會在我的功能中提供給我?
common.js(簡化堆棧溢出)
require(["knockout"], function (ko) {
var appViewModel = {};
appViewModel.loaded = ko.observable(false);
});
通過在需要包裝的一切()我認爲這是需要注射淘汰賽的依賴關係。
應用程序的第一頁 - login.html的(簡化SO)
在應用程序中的第一頁,我想,當定義一個<script>
標籤有以下
require(["jquery", "knockout", "fastclick", "common"], function ($, ko, FastClick)
{
$(function(){
appViewModel.loginData = {
email : ko.observable(),
password : ko.observable()
};
});
});
而產生的誤差運行的是
Uncaught ReferenceError: appViewModel is not defined
儘管我已在要求([])列入「共同」。
我在這裏錯過了什麼?我認爲我可能完全誤解了requireJS中的「要求」和「定義」,因此這將成爲我答案的良好基礎。
的''' 'appViewModel''''不在相同的範圍內。 –