【问题标题】:How to reference the bundled js files (asp.net mvc4) in Require.js?如何在Require.js中引用捆绑的js文件(asp.net mvc4)?
【发布时间】:2012-09-07 00:52:23
【问题描述】:

我一直在学习约翰·帕帕关于 SPA 的复数课程。

在他的main.js 中,他为包中包含的每个 js 库命名。

(function () {
var root = this;

define3rdPartyModules();


function define3rdPartyModules() {
    // These are already loaded via bundles. 
    // We define them and put them in the root object.
    define('jquery', [], function () { return root.jQuery; });
    define('ko', [], function () { return root.ko; });
    define('amplify', [], function () { return root.amplify; });
    define('infuser', [], function () { return root.infuser; });
    define('moment', [], function () { return root.moment; });
    define('sammy', [], function () { return root.Sammy; });
    define('toastr', [], function () { return root.toastr; });
    define('underscore', [], function () { return root._; });
}

})();

但是这里的root 是什么?


通过这样做,我们可以在define 语句中调用这些短名称:

define('vm.session',
['ko', 'datacontext', 'config', 'router', 'messenger', 'sort'],
function (ko, datacontext, config, router, messenger, sort) {

当前,我不知道该怎么做。所以我的工作define 声明很丑:

define('vm.admin.outfitters',
['/Scripts/lib/jquery-1.8.1.js', '/Scripts/lib/jsrender.js', ...], function(){...

我知道一定有更好的方法。所有这些 js 文件都已包含在脚本包中。如何引用这些脚本?

【问题讨论】:

  • 嗨@Blaise ...我正在尝试将捆绑和缩小与requirejs一起使用,但我不知道如何让它发挥作用!你有任何示例代码可以提供给我吗?谢谢。

标签: asp.net-mvc requirejs durandal bundling-and-minification toastr


【解决方案1】:

RE:根

RequireJS 和 AMD 就绪库从全局范围中删除对象(例如 ko)。一些插件希望它们在全局范围内,因此我们可以填充这些插件或将对象弹出回全局范围。后者是这段代码中发生的事情。主要是为 Knockout 的插件完成的。

RE:您的定义语句

第一个参数是模块的名称,这样就可以了。第二个参数是 RequireJS 知道的模块列表。第三个参数是表示它的匹配变量。所以在你的代码中你可能有这样的东西......

define('vm.admin.outfitters',
['jquery', 'jsrender'], function($, jsrender) { 

【讨论】:

  • 谢谢。现在看来我已经让它工作了。但这仍然让我感到困惑。顺便说一句,你的课程很有价值,但对我们中的许多人来说节奏有点太快了。 :-)
猜你喜欢
  • 2016-11-20
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多