0

因此,我尝试根据 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 中定义它还是将其保留在原处?

4

0 回答 0