AngularJS从控制器外部调用公共控制器函数
AngularJS call common controller function from outside controller
我的基本前提是,如果有人来到网站但仍在登录,我想回调服务器以获取登录用户。在页面上,我想调用此方法。由于我将用户服务传递给我的所有控制器,我不知道哪个控制器将被使用,因为我不知道它们在哪个页面上着陆。
我有以下用户服务
app.factory('userService', function ($window) {
var root = {};
root.get_current_user = function(http){
var config = {
params: {}
};
http.post("/api/user/show", null, config)
.success(function(data, status, headers, config) {
if(data.success == true) {
user = data.user;
show_authenticated();
}
});
};
return root;
});
这是一个空控制器,我正试图将服务注入
app.controller('myResourcesController', function($scope, $http, userService) {
});
所以在我的索引文件的顶部,我想有一些类似的东西
controller.get_current_user();
这将从所有页面调用,所以我不确定这里的语法。我发现的所有例子都与调用特定的控制器有关,通常是从另一个控制器中调用。也许这需要进入我的angularjs的某个地方,而不仅仅是在索引页上的脚本标记中。
您可以在角度应用程序的run
方法中运行工厂初始化。https://docs.angularjs.org/guide/module#module-加载依赖项例如
app.run(['userService', function(userService) {
userService.get_current_user();
}]);
并且userService
工厂应该内部存储经过身份验证的用户对象。
...
if (data.success == true) {
root.user = data.user;
}
...
然后你将能够在任何控制器中使用你的工厂
app.controller('myController', ['userService', function(userService) {
//alert(userService.user);
}]);
您需要通过工厂构造函数注入$http,用于第一个
app.factory('userService', function ($window, $http) {
var root = {};
root.get_current_user = function(){
var config = {
params: {}
};
$http.post("/api/user/show", null, config)
.success(function(data, status, headers, config) {
if(data.success == true) {
user = data.user;
show_authenticated();
}
});
};
return root;
});
在你的控制器中,你可以说
$scope.get_current_user = UserService.get_current_user();
ng属性(如果需要(。除此之外,我不确定你需要什么。
相关文章:
- AngularJS执行指令模板中的控制器函数
- Angularjs:路由后如何调用控制器函数
- 为什么控制器函数没有执行 Angular Js 1.5.5
- 在 html5 视频结束时调用 AngularJS 控制器函数
- Angularjs指令调用控制器函数
- 从浏览器调用角度控制器函数
- 如何在angular js中从指令调用控制器函数
- AngularJS-如何在ng中继器中调用以项值为参数的控制器函数
- Angularjs将函数从控制器传递到指令(或从指令调用控制器函数)-带参数
- 如何使用ajax从javascript调用控制器函数
- 触发视图'的控制器函数
- 从AngularJS中的视图调用控制器函数
- 当使用Angular1+ES6时,控制器函数中未定义依赖注入,控制器是一个类
- 从指令角度调用控制器函数
- 从指令调用控制器函数(使用从指令传递的参数)
- 从 Karma 和 Jasmine 测试调用控制器函数
- 从指令调用角度控制器函数
- 有什么方法可以放置一个触发器来在 CodeIgniter 的控制器函数中切换引导模式
- 如何修复角度 js ng 控制器函数调用
- 我可以将变量控制器函数传递给指令中的函数链接吗?