Angular 找不到服务
Angular could not find service
又遇到一个小问题,自己解决不了
我在一些文件中得到了一些服务。我的构建系统将所有文件合并为一个大文件。结果是这样的(缩短):
/// file: _.service.js
angular.module('services', []);
/// file: aufgang.service.js
angular.module('services').factory('aufgangService', ['$resource', function ($resource) {
"use strict";
return $resource(
configuration.api2_base_url + '/api/Aufgang/:id',
{ id: '@id' },
{
single: { method: 'GET', isArray: false },
get: { method: 'GET', isArray: true }
}
);
}]);
/// file: beleg-monitor.service.js
angular.module('services').factory('belegMonitorService', ['$resource', function ($resource) {
"use strict";
return $resource(configuration.api2_base_url + '/api/BelegMonitors', {}, { get: { method: 'GET', isArray: true } });
}]);
这是我的主模块header
angular.module('mainModule', ['ui.router', 'ui.bootstrap', 'oc.lazyLoad', 'ngSanitize','services'])
现在我遇到了问题,注入器无法找到服务。我错过了什么吗?
我看到了三个可能的原因:
- 您的构建 "forget" 添加其中一个文件
- 如果您有多个模块,请检查检测到缺失依赖项的模块是否对这个模块有依赖性
- 服务名称中有拼写错误?
打开你的控制台 debogguer 并粘贴消息如果你想让我们告诉你缺少依赖项是如果你在阅读它时遇到一些问题。
当 angular.module('mainModule', ['ui.router', 'ui.bootstrap', 'oc.lazyLoad', 'ngSanitize','services']) 行被执行。原因可能是 'services' 模块是在单独的文件中创建的,因此可能会在执行 angular.module('mainModule'... 行后创建 'services' .
尝试在 angular.module('mainModule'...行被执行的相同文件中创建 'services' 模块,如果没有。
试试这个:
1) 添加angular-resource.js: "//ajax.googleapis.com/ajax/libs/angularjs/X.Y.Z/angular-resource.js"
2) 改为 angular.module('mainModule', ['ui.router', 'ui.bootstrap', 'oc.lazyLoad', 'ngSanitize','services', 'ngResource'])
我认为 'services' 模块没有问题,因为遵循模块层次结构工作正常。所以,必须错过一些其他依赖。
/// file: _.service.js
angular.module('services', []);
/// file: aufgang.service.js
angular.module('services').factory('aufgangService', function ($resource) {
"use strict";
return function () {
};
});
/// file: beleg-monitor.service.js
angular.module('services').factory('belegMonitorService', function ($resource) {
"use strict";
return function () {
};
});
angular.module('mainModule', ['services']);
angular.module('mainModule').controller("mainCtrl", function ($scope) {
$scope.Message = "Hello World !!!";
})
又遇到一个小问题,自己解决不了
我在一些文件中得到了一些服务。我的构建系统将所有文件合并为一个大文件。结果是这样的(缩短):
/// file: _.service.js
angular.module('services', []);
/// file: aufgang.service.js
angular.module('services').factory('aufgangService', ['$resource', function ($resource) {
"use strict";
return $resource(
configuration.api2_base_url + '/api/Aufgang/:id',
{ id: '@id' },
{
single: { method: 'GET', isArray: false },
get: { method: 'GET', isArray: true }
}
);
}]);
/// file: beleg-monitor.service.js
angular.module('services').factory('belegMonitorService', ['$resource', function ($resource) {
"use strict";
return $resource(configuration.api2_base_url + '/api/BelegMonitors', {}, { get: { method: 'GET', isArray: true } });
}]);
这是我的主模块header
angular.module('mainModule', ['ui.router', 'ui.bootstrap', 'oc.lazyLoad', 'ngSanitize','services'])
现在我遇到了问题,注入器无法找到服务。我错过了什么吗?
我看到了三个可能的原因:
- 您的构建 "forget" 添加其中一个文件
- 如果您有多个模块,请检查检测到缺失依赖项的模块是否对这个模块有依赖性
- 服务名称中有拼写错误?
打开你的控制台 debogguer 并粘贴消息如果你想让我们告诉你缺少依赖项是如果你在阅读它时遇到一些问题。
当 angular.module('mainModule', ['ui.router', 'ui.bootstrap', 'oc.lazyLoad', 'ngSanitize','services']) 行被执行。原因可能是 'services' 模块是在单独的文件中创建的,因此可能会在执行 angular.module('mainModule'... 行后创建 'services' .
尝试在 angular.module('mainModule'...行被执行的相同文件中创建 'services' 模块,如果没有。
试试这个:
1) 添加angular-resource.js: "//ajax.googleapis.com/ajax/libs/angularjs/X.Y.Z/angular-resource.js"
2) 改为 angular.module('mainModule', ['ui.router', 'ui.bootstrap', 'oc.lazyLoad', 'ngSanitize','services', 'ngResource'])
我认为 'services' 模块没有问题,因为遵循模块层次结构工作正常。所以,必须错过一些其他依赖。
/// file: _.service.js
angular.module('services', []);
/// file: aufgang.service.js
angular.module('services').factory('aufgangService', function ($resource) {
"use strict";
return function () {
};
});
/// file: beleg-monitor.service.js
angular.module('services').factory('belegMonitorService', function ($resource) {
"use strict";
return function () {
};
});
angular.module('mainModule', ['services']);
angular.module('mainModule').controller("mainCtrl", function ($scope) {
$scope.Message = "Hello World !!!";
})