【发布时间】:2015-11-26 00:36:07
【问题描述】:
我在打包时遇到了生成的 javascript 的执行顺序问题。 将它们捆绑在一起时出现此错误。
未捕获的错误:[$injector:nomod] 模块“app.demo”不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
我相信我已经将其范围缩小到 angular.module("app.demo").service() 在 angular.module("app.demo", []) 之前在组合 appbundle.js 中被调用。
我的文件夹结构如下:
我将它包含在我的 index.html 中。
<script src="App/appbundle.js"></script>
相关的打字稿文件:
app.module.ts
module App {
"use strict";
// Create the module and define its dependencies.
angular.module("app", [
// Angular modules
"app.core",
"app.demo",
"app.services"
]);
}
demo.service.ts
module App.Services {
"use strict";
export interface IDemoService {
getData: () => Array<string>;
}
class demoService implements IDemoService {
static $inject: string[] = ["$http"];
constructor(private $http: ng.IHttpService) {
}
getData(): Array<string> {
return ["one", "two", "three"];
}
}
angular.module("app.services").service("demoService", demoService);
}
services.module.ts
module App.Services {
"use strict";
// Create the module and define its dependencies.
angular.module("app.services", []);
}
如前所述。我相信问题出在文件合并到appbundle.js中的顺序。
所以我的问题是。 如何在保留捆绑功能的同时解决此问题?
我意识到重命名文件会改变它们包含的顺序。但这不是我愿意做的事情:)
【问题讨论】:
标签: angularjs visual-studio visual-studio-2013 typescript bundle