gpt4 book ai didi

javascript - Angularjs 未知提供者错误

转载 作者:行者123 更新时间:2023-11-29 22:00:00 25 4
gpt4 key购买 nike

我得到了

Error: [$injector:unpr] Unknown provider: mvProfileCtrlProvider <- mvProfileCtrl

在我的错误中,我已经确保它包含在我的脚本中并且可以访问(我可以从 chrome-debugger > sources > mvProfileCtrl.js 打开它)所以它可用于我猜是引用。但仍然有两个相关文件:

 angular.module('app').controller('navBarLoginController',function($scope,$http,mvIdentity,mvNotifier,mvAuth,mvProfileCtrl,$location) {
$scope.identity = mvIdentity;
$scope.signin = function(username,password) {
mvAuth.authenticateUser(username,password).then(function(success){
if(success){
mvNotifier.notify('You have successfully signed in!');
}else{
mvNotifier.notify('Username/Password combination incorrect');
}
})
}
var profile = mvProfileCtrl;
$scope.update = function(){
profile.listen(mvIdentity.currentUser);
}
$scope.signout = function() {
mvAuth.logoutUser().then(function() {
$scope.username = "";
$scope.password = "";
mvNotifier.notify('You have successfully signed out!');
$location.path('/');
})
}
})

mvProfileCtrl.js -

angular.module('app').controller('mvProfileCtrl', function($scope, mvAuth, mvIdentity, mvNotifier) {
$scope.mvIdentity = mvIdentity;
$scope.update = function() {
console.log("" + $scope.updateemail + " -- " + test);
var newUserData = {
username: $scope.updateemail,
firstName: $scope.updatefname,
lastName: $scope.updatelname
}
if($scope.updatepassword && $scope.updatepassword.length > 0) {
newUserData.password = $scope.updatepassword;
}

mvAuth.updateCurrentUser(newUserData).then(function() {
$('#profileModal').modal('toggle');
mvNotifier.notify('Your user account has been updated');
}, function(reason) {
mvNotifier.error(reason);
})
}
return {
listen : function(currentUser) {
if (!currentUser) return;
$scope.updateemail = currentUser.username;
$scope.updatefname = currentUser.firstName;
$scope.updatelname = currentUser.lastName;
console.log("--> " + $scope.updateemail + " -- " + test);
}
}
});

和脚本文件 -

script(type="text/javascript", src="/vendor/jquery/dist/jquery.js")
script(type="text/javascript", src="/vendor/toastr/toastr.js")
script(type="text/javascript", src="/vendor/angular/angular.js")
script(type="text/javascript", src="/vendor/angular-resource/angular-resource.js")
script(type="text/javascript", src="/vendor/angular-route/angular-route.js")
script(type="text/javascript", src="/vendor/bootstrap/dist/js/bootstrap.js")
script(type="text/javascript", src="/vendor/bootstrap/js/dropdown.js")
script(type="text/javascript", src="/app/app.js")
script(type="text/javascript", src="/plugins/backstretch/jquery.backstretch.min.js")
script(type="text/javascript", src="/plugins/bxslider/jquery.bxslider.min.js")
script(type="text/javascript", src="/plugins/bxslider/jquery.bxslider.min.js")
script(type="text/javascript", src="/app/account/navBarLoginController.js")
script(type="text/javascript", src="/app/common/mvNotifier.js")
script(type="text/javascript", src="/app/account/mvIdentity.js")
script(type="text/javascript", src="/app/account/mvauth.js")
script(type="text/javascript", src="/app/account/mvUser.js")
script(type="text/javascript", src="/app/admin/mvUserListCtrl.js")
script(type="text/javascript", src="/app/account/mvSignupCtrl.js")
script(type="text/javascript", src="/app/account/mvProfileCtrl.js")

最佳答案

这里的问题是,您正在尝试将 Controller 注入(inject)另一个 Controller 。而这应该是这样的。

请检查:

看看我们应该如何在 Controller 之间进行通信 - 使用共享服务。

服务和 Controller 之间最大的区别是(参见 Developer Guide/ Dependency Injection ):

Controllers are special in that, unlike services, there can be many instances of them in the application. For example, there would be one instance for every ng-controller directive in the template.

因此,当我们试图在另一个 Controller 中调用一个 Controller 的方法时……我们应该将其移至单例服务中

关于javascript - Angularjs 未知提供者错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24348529/

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