因此,我尝试根据 John Papa 在 PlurarlSight 上的 Code Camper 教程使用 RequireJs 进行设置,但我似乎仍然无法做到正确。
我的 bootstrapper.run() 永远不会被调用,因为 bs 总是未定义
_Layout.cshtml
@Scripts.Render("~/Scripts/kendo/2012.3.1114/jquery.min.js")
@Scripts.Render("~/Scripts/kendo/2012.3.1114/kendo.web.min.js")
@Scripts.Render("~/Scripts/libs/knockout-2.2.1.js")
@Scripts.Render("~/Scripts/libs/toastr-1.1.5.js")
@Scripts.Render("~/Scripts/libs/require.js")
脚本/main.js
(function() {
var root = this;
requirejs.config({
baseUrl: 'Scripts/libs',
paths: {
app: '../app'
}
});
Define3rdPartyModules();
LoadPluginsAndBoot();
function Define3rdPartyModules() {
//Load things such as jquery, ko, Kendo, toastr etc here
define('jquery', [], function () { return root.jQuery; });
define('knockout', [], function () { return root.ko; });
define('toastr', [], function () { return root.toastr; });
define('kendo', [], function() { return root.kendo; });
}
function LoadPluginsAndBoot() {
//Load self create plugins and extensions here
requirejs(['app/ko-bindingHandlers', 'app/ko-kendo'], Boot);
}
function Boot() {
require(['app/bootstrapper'],
function (bs) {
bs.run();
});
}
})();
脚本/app/bootstrapper.js
define('bootstrapper',
[],
function () {
var run = function () {
alert('we ran this');
};
return { run: run };
});
bootstrapper.js 出现在我的开发控制台窗口中,但 bs 未定义。
此外,我正在尝试使用 Ryan Niemeyer 创建的 ko-kendo 扩展,我看到它内置了 requirejs 检查,所以我应该在我的 _Layout.cshtml 中定义它还是将其保留在原处?