【问题标题】:Angular service error角服务错误
【发布时间】:2018-09-09 13:54:08
【问题描述】:

我有以下用于服务调用的代码实现,但出现以下错误: “angular.min.js:102 错误:[$injector:unpr]”

请告诉我以下错误。提前谢谢

    var app1 = angular.module('homeapp', []);
app1.service('APIService', function ($http) {
    this.getSkill = function (userid) {
        //return $http.get("api/GetSkillRating", )
    return $http({
                url: "api/GetSkillRating",
                method: "GET",
                params: { userid: userid }
            });
    }
});  

app1.controller("HomeController", ['$scope', 'APIService', function ($scope, APIService) {
    $scope.skillrating =[];

    $scope.getAll = function () {
        var servCall = APIService.getSkill(userid);
        servCall.then(function (d) {
            $scope.skillrating = d.data;
        }, function (error) {
                $log.error('Oops! Something went wrong while fetching the data.')
            })
    }  

}])

【问题讨论】:

    标签: angularjs angularjs-service


    【解决方案1】:

    将 $scope 添加为依赖项

    app1.controller("HomeController", ['$scope','APIService', function ($scope, APIService) {
    

    【讨论】:

    • 也发布您的 html
    • SNo 软技能 自我评价
      {{sub.Id}} {{sub.skill}} {{sub.rating}}
    【解决方案2】:

    你不能在服务中使用 $scope 在控制器中你必须注入 $scope 和 $log

    var app1 = angular.module('homeapp', []);
    
    app1.service('APIService', function ($http) {
            this.getSkill = function () {
                    //return $http.get("api/GetSkillRating", )
            return $http({
                                    url: "api/GetSkillRating",
                                    method: "GET",
                                    params: { userid: $scope.userid }
                            });
            }
    });
    
    app1.controller("HomeController", ['$scope','$log','APIService', function ($scope, $log, APIService) {
            $scope.skillrating =[];
            getAll();
    
            function getAll() {
                    var servCall = APIService.getSkill();
                    servCall.then(function (d) {
                            $scope.skillrating = d.data;
                    }, function (error) {
                                    $log.error('Oops! Something went wrong while fetching the data.')
                            })
            }
    
    }]);
    

    【讨论】:

    • @vimalkumar 你确定你在这行代码中只定义了一次吗? var app1 = angular.module('homeapp', []);
    • 我有 var app = angular.module('loginapp', []);对于另一个视图页面登录控制器
    • 你能添加更多代码吗?我想了解这个应用程序的结构
    • 你可以看这里stackoverflow.com/questions/21673404/…如何管理更多模块
    • 我将两个模块放在同一个文件中,用于两个不同的控制器。 var app = angular.module('loginapp', []); var app1 = angular.module('homeapp', []);
    猜你喜欢
    • 1970-01-01
    • 2019-01-11
    • 2018-05-31
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 2022-08-02
    • 2013-07-15
    • 1970-01-01
    相关资源
    最近更新 更多