捆绑时生成的javascript的执行顺序出现问题。 当我将它们捆绑在一起时,我收到了这个错误。
未捕获错误:[$ injector:nomod]模块'app.demo'不可用!您要么错误拼写了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
我相信我已将其缩小为angular.module("app.demo").service()
在合并angular.module("app.demo", [])
中appbundle.js
之前调用。
我已经设置了这样的捆绑。在visual studio 2013中。
我的文件夹结构如下:
我在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
。
所以我的问题是。 如何在保留捆绑功能的同时解决此问题?
我意识到重命名文件会改变它们包含的顺序。但那不是我愿意做的事情:)
答案 0 :(得分:0)
如何在保留捆绑功能的同时解决此问题?
使用外部捆绑包,例如的WebPack。
更多:https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md