我正在构建一个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文件。
如果我删除“ define(function(require)”,我不能100%确定会产生什么影响。
在我的场景中使用MVC的捆绑和缩小功能的最佳方法是什么?
感谢。
答案 0 :(得分:1)
传递给define的函数在其他东西需要之前不会运行。所以你的服务2没有定义错误可能是因为你没有明确要求它。
require(['First', 'Second'], function () {
//Use Service1 and Service2
});