2017-03-31 64 views
0

我有一些JavaScript和HTML文件:User.jsindex.htmlDoor.js呼叫角度服务于另一个JS文件

我想在User.js文件中使用任何功能。

我在功能 doorApplicationLoginPage.service

Error: [$injector:unpr] Unknown provider: UserServiceProvider <- UserService <- PerioMainController

调用 getUserInfouser.JsDoor.js文件

谢谢。

回答

1

您正在注射未参考您的moduleservice

参见:

UserServiceservice引用PerioLoginPagemodulePerioMainControllercontroller被引用PerioDoorApplicationmodule

你必须要么:

  1. 参考同一模块作为控制器的服务。
  2. 注入模块服务被引用到引用控制器的模块。
+1

我不同意,他可以使用从其他模块的“依赖” – Groben

+0

你是对的。如果他将服务引用到引用控制器的模块,则可能会发生这种情况。谢谢回复。我正在编辑右前方。 – Korte

0

在这种情况下,我可以看到你有两个模块Periodicloginpage和periodicdoorapplication。所以两个服务在两个模块中定义。所以你必须把Periodicloginpage作为periodicdoorapplication的依赖。

var doorApplication = angular.module("PerioDoorApplication", ["PerioLoginPage"]); 
0

My login js file

My door js file

我想用在user.js的 “getUserInfo” 功能,从“门。JS”的任何功能

+0

首先你需要从服务返回函数返回{getUserInfo:getUserInfo,reLoginUser:reLoginUser}; – Groben

+0

秒:你的模块需要引用服务定义的模块:angular.module('PerioDoorApplication',['PerioLoginPage']); – Groben

+0

OMG ..非常感谢... 它完成了.. – tuncgulec

0

正如我在评论说你有两两件事要做至少:

您需要返回要从服务使用的功能(UserService):

return{ 
    getUserInfo: getUserInfo, 
    reLoginUser: reLoginUser 
}; 

你的模块需要引用服务上定义的一个:

angular.module('PerioDoorApplication', ['PerioLoginPage']); 

而在你的“PerioMainController”,一个更好的方式来写这将是:

doorApplication.controller('PerioMainController', ['$scope', '$http', '$sce', 'UserService', 
    function($scope, $http, $sce, UserService){ 
     [...] 
    } 
]);