【发布时间】:2015-09-01 16:14:29
【问题描述】:
我已经完成了一个基于 ASP MVC 和 angularJS 的 Web 应用程序,一切正常。现在,我想部署它。在我的bundleConfig 中,我已将BundleTable.EnableOptimizations = true; 用于缩小我的脚本。
当我启动应用程序时出现错误:
模块“dataService”不可用!你要么拼错了...
在文档中我看到了一件有趣的事情(它适合错误):
小心:如果您计划缩小代码,您的服务名称将被重命名并破坏您的应用程序。
正如文档建议的那样,我使用内联数组注释。我的代码是:
app = angular.module("MyApp", ['ui.router', 'ui.bootstrap', 'kendo.directives', 'dataService', 'LoginFactory', 'globalService']);
在模块dataService中是:
app.service('dataService', ['$http', function($http) {
// service logic
}]);
我认为这样可以解决错误,但没有。
PS:我见过 3 种不同的注入依赖方法,我都用过。在示例中,我使用它是因为在 docs 中标记为 preferred
【问题讨论】:
-
您的第一个示例需要一个模块
dataService,您的第二个示例定义了一个服务dataService。你有一个名为dataService的模块吗? -
顺便说一句,模块中没有 Service() 方法。
-
@zeroflagL 我认为你不明白。在第一个代码中,我创建了模块应用程序,并使用“dataService”声明了依赖关系。在第二个代码中,我创建了“dataService”服务。就像docs,我认为...
-
angular.module("MyApp"创建 moduleMyApp,它依赖于其他 modules。ui.router是一个模块,ui.bootstrap是一个模块。如果第二个示例中的app与第一个示例中的app是相同的模块,那么您就完成了。从第一个删除dataService。也许你应该先看看别人的分数,然后再决定写“我不认为你明白”。 -
哦,对不起!我想说“我想我不明白你”。我的英语很糟糕,我不想冒犯你。你是对的,我不得不在第一个例子中删除“dataService”。非常感谢!
标签: angularjs bundle angularjs-injector