javascript - 通过缩小和 require.js 进行 MVC 捆绑

标签 javascript asp.net-mvc angularjs requirejs

我正在构建一个 MVC 应用程序并在其中使用 Angular 和 require.js。

我的 JS 文件定义如下。

第一个 JS 文件:

define(function (require) {
    'use strict';
     var angular = require('angular');
     var app = angular.module('App');

     app.service('Service1', function () {
     });
}); 

第二个 JS 文件:

define(function (require) {
    'use strict';
     var angular = require('angular');
     var app = angular.module('App');

     app.service('Service2', function () {
     });
});

在 require js 配置中,我给出了脚本包的路径,可以看到 JS 文件被捆绑、缩小并加载。但我们收到错误“Service2 未定义”。

当我合并两个文件或从各个文件中删除“define(function (require)”时,一切正常。

合并文件:

define(function (require) {
    'use strict';
     var angular = require('angular');
     var app = angular.module('App');

     app.service('Service1', function () {
     });

     app.service('Service2', function () {
     });
});

第一个 JS 文件:

    'use strict';
     var angular = require('angular');
     var app = angular.module('App');

     app.service('Service1', function () {
     });

第二个 JS 文件:

    'use strict';
     var angular = require('angular');
     var app = angular.module('App');

     app.service('Service2', function () {
     });

我无法像上面那样合并文件,因为我有大量的 JS 文件。

我不能 100% 确定如果删除“define(function (require)”会产生什么影响。

在我的场景中使用 MVC 的捆绑和缩小功能的最佳方法是什么?

谢谢。

最佳答案

传递给define的函数只有在被其他函数需要时才会运行。因此,您的 service 2 is not Defined 错误可能是因为您没有明确要求它。

require(['First', 'Second'], function () {
    //Use Service1 and Service2
});

关于javascript - 通过缩小和 require.js 进行 MVC 捆绑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23528265/

相关文章:

javascript - 在node/javascript/underscore中过滤大型数据集

html - 使用 IE 从不同主机获取时的 CSS 图像路径

javascript - 将 %20 删除为空

c# - 如何在MVC中写入文本文件

angularjs - 注入(inject)器返回未定义的值?

javascript - 当字段从 js 返回时显示按钮

angularjs - 如何通过 child 的属性查询Firebase?

javascript - 使用 parseInt 减去日期

javascript - 如何防止拖拽 child ,但允许拖拽 parent ?

javascript - 链式选择提交按钮已停止正常运行