gpt4 book ai didi

javascript - AngularJS 从外部 Controller 调用公共(public) Controller 函数

转载 作者:行者123 更新时间:2023-11-30 12:43:45 25 4
gpt4 key购买 nike

我的基本前提是我想回调服务器以获取登录用户,以防有人访问该站点并且仍然登录。在页面上我想调用此方法。由于我将用户服务传递给我的所有 Controller ,因此我不知道将使用哪个 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;
});

这是一个我试图将服务注入(inject)的空 Controller

app.controller('myResourcesController', function($scope, $http, userService) {

});

所以在我的索引文件的顶部,我想有一些类似

的东西
controller.get_current_user();

这将从所有页面调用,所以我不确定这里的语法。我发现的所有示例都与调用特定 Controller 有关,而且通常来自另一个 Controller 。也许这需要进入我的 angularjs 某处,而不仅仅是在我的索引页面上的脚本标记中。

最佳答案

您可以在 Angular 应用程序的 run 方法中运行工厂初始化。 https://docs.angularjs.org/guide/module#module-loading-dependencies例如

app.run(['userService', function(userService) {
userService.get_current_user();
}]);

并且 userService 工厂应该在内部存储经过身份验证的用户对象。

...
if (data.success == true) {
root.user = data.user;
}
...

然后你就可以在任何 Controller 中使用你的工厂了

app.controller('myController', ['userService', function(userService) {
//alert(userService.user);
}]);

关于javascript - AngularJS 从外部 Controller 调用公共(public) Controller 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23403544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com