Call function from another Controller Angular Js
Call function from another controller Angularjs
http://tutorials.jenkov.com/angularjs/dependency-injection.html
我一直在谷歌上搜索并试图适应,但我无法弄清楚。
我有两个文件:home.js
和auth.js
。我创建了文件auth.js
,因为我需要在很多文件中调用它内部的函数。
我无法创建简单的功能,如:
function isAuthed(){
return true;
}
因为我需要使用一些AngularJS模块,比如HTTP,所以我相信我需要创建一个像样的角度js文件。 对于我到目前为止所读到的内容,为了从另一个控制器调用函数,最好和正确的方法是使用服务。
home.js
var app = angular.module('home', [
'ngRoute'
]);
app.controller('home', ['$scope', 'authSERVICE', function($scope, authSERVICE){
console.log(authSERVICE.hasCredentials());
}]);
auth.js
var app = angular.module('auth', []);
app.service('authSERVICE', ['$http', function($http){
this.hasCredentials = function(){
if(window.localStorage.getItem('email') != null && window.localStorage.getItem('password') != null){
return true;
}
}
this.login = function(email, password){
// Base64 function is from a simple JS file.
var auth = Base64.encode('username:password');
$http.get('http://localhost/project/api/webservice/getCategories', {
headers: { 'Authorization': 'Basic ' + auth },
params : {
email: email,
password: password,
}
}).success(function(response){
return true;
}).error(function(response){
return false;
});
}
}]);
这不起作用,我在控制台上收到错误:https://docs.angularjs.org/error/$injector/unpr?p0=authSERVICEProvider%20%3C-%20authSERVICE 我有点理解告诉我的错误信息是什么。虽然,我仍然需要并希望拥有两个不同的文件。
编辑:顺便说一句,在index.html
文件中,我称之为脚本:
<script type="text/javascript" src="application/controllers/home.js"></script>
<script type="text/javascript" src="application/controllers/auth.js"></script>
答案 0 :(得分:2)
感谢@Ved的回答,我设法弄清楚了。的解决强>
var app = angular.module('home', [
'ngRoute',
'auth'
]);