我的设置至今:如何使用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''''不在相同的范围内。 –