试图将服务添加到我的angularjs应用程序

时间:2014-11-29 18:23:46

标签: angularjs

我正在尝试向我的应用添加服务,但无法看到问题。我必须遗漏一些简单的东西。

我的应用程序定义如下:(在服务中删除了大量内容)。一旦我弄清楚我做错了什么,该服务也将被移动到一个单独的文件中。这就是为什么在这个例子中它是一个单独的调用;

var app =   angular.module('app', ['ngRoute','ngResource', 'ngAnimate', 'ui.bootstrap', 'ui.tree', 'ngMap', 'ngTagsInput', 'angular-loading-bar', 'app.controllers'
                             , 'app.directives', 'app.localization', 'app.nav', 'app.ui.ctrls', 'app.ui.directives'
                             , 'app.ui.services', 'app.ui.map', 'app.form.validation', 'app.ui.form.ctrls', 'app.ui.form.directives', 'app.tables', 'app.task'
                             , 'app.chart.ctrls', 'app.chart.directives', 'app.page.ctrls'
                             , 'virtualAssistServices'
                            ]
                      );
angular.module('app')
       .service('virtualAssistServices', ['$http', function ($http) {
                var urlBase = '/api/customers';

 }]);

如果我从应用程序定义中删除virtualAssistServices一切正常,但只要我添加到app模块我就会收到错误

Error: [$injector:modulerr] Failed to instantiate module app due to: [$injector:modulerr] 
Failed to instantiate module virtualAssistServices due to: [$injector:nomod] Module
'virtualAssistServices' is not available! You either misspelled the module name or 
forgot to loadit. If registering a module ensure that you specify the dependencies 
as the second argument.
 http://errors.angularjs.org/1.2.27/$injector/nomod?p0=virtualAssistServices

3 个答案:

答案 0 :(得分:1)

您不应该在virtualAssistServices定义的依赖关系数组中提及app,因为virtualAssistServices不是模块。

您正在app模块本身定义服务。因此,服务功能固有地附加到应用程序。

答案 1 :(得分:0)

分配应用时,您不应该在数组中列出virtualAssistServices。这是列出您所依赖的模块的原因;你不会在那里列出你自己的服务。

答案 2 :(得分:0)

如果作为同一模块的一部分创建,您的服务应该转到控制器而不是模块。如果在其他模块中创建服务,请在模块中添加依赖项。

app.controller('MyController', [ '$scope', 'virtualAssistServices', function($scope, virtualAssistServices) {

});