gpt4 book ai didi

javascript - 无法在 Angular js 中的 .run 中注入(inject)服务

转载 作者:行者123 更新时间:2023-12-02 14:07:33 24 4
gpt4 key购买 nike

我想将服务注入(inject)到我的 .run block 中,但是当我注入(inject)它时我无法使用它们。

我的代码是:

.run(['AuthFactory', function ($state, $rootScope, AuthFactory, $location) {

console.log("Auth Factory :%O", AuthFactory);

AuthFactory.registerUserChangeHandler(function (currentUser) {
$rootScope.currentUser = currentUser;
});

AuthFactory.refresh().then(function (currentUser) {
console.log("Current User is", currentUser);
}, function (reason) {
// User is not Logged in
$location.path("login");

});
}]);

当我编写此代码时,出现错误:

"app.js:120Uncaught TypeError: Cannot read property 'registerUserChangeHandler' of undefined"

如果我只是在函数中注入(inject) AuthFactory ,那么一切都会正常工作,但现在我想注入(inject) UserService 并在服务内使用方法。

我尝试将它注入(inject)到函数中,但无法使用它。

开放接受所有建议。

最佳答案

你在 DI 中搞砸了。

.run(['state', '$rootScope', 'AuthFactory', '$location', 
function ($state, $rootScope, AuthFactory, $location) {

console.log("Auth Factory :%O", AuthFactory);
// ...
}]);

关于javascript - 无法在 Angular js 中的 .run 中注入(inject)服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39910971/

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