Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在控制器中注入服务时出错_Javascript_Angularjs - Fatal编程技术网

Javascript 在控制器中注入服务时出错

Javascript 在控制器中注入服务时出错,javascript,angularjs,Javascript,Angularjs,我试图使用AngularJs使用Web API,但我很难理解其中的角度 我创建了HTML、控制器和服务。对我来说一切似乎都很好,但当运行应用程序时,我得到了注入错误 html <html > <head> <title>Motors </title> <script src="/Scripts/angular.js"></script> <script src="/Scripts/angular

我试图使用AngularJs使用Web API,但我很难理解其中的角度

我创建了HTML、控制器和服务。对我来说一切似乎都很好,但当运行应用程序时,我得到了注入错误

html
<html >
<head>
    <title>Motors </title>
    <script src="/Scripts/angular.js"></script>
    <script src="/Scripts/angular-route.js"></script>
    <script src="/View/motorController.js"></script>
</head>
<body ng-app="myApp" ng-controller="motorController">
    <div>
        <table class="table">
            <tr>
                <th>Id</th>
                <th>Name</th>
                <th>Country</th>
            </tr>
            <tr ng-repeat="m in motors">
                <td>{{m.Id}}</td>
                <td>{{m.Name}}</td>
                <td>{{m.Country}}</td>
            </tr>
        </table>
    </div>
</body>
</html>
角度服务

motorApp.factory('motorService', function ($http) {
    var urlBase = 'http://localhost:40738/api';
    var motorService = {};

    motorService.GetAllMotors = function () {
        return $http.get(urlBase + '/GetAllMotors');
    };

    return motorService;
});
在chrmoe浏览器控制台上获取时出错

Error: [$injector:unpr] Unknown provider: $motorServiceProvider <- $motorService <- motorController

错误:[$injector:unpr]未知提供程序:$motorServiceProvider您在MotorService前面有一个额外的$infort,请更改

发件人:

 .controller('motorController', ['$scope', '$motorService',function ($scope, motorService) 
 .controller('motorController', ['$scope', 'motorService',function ($scope, motorService)
至:

 .controller('motorController', ['$scope', '$motorService',function ($scope, motorService) 
 .controller('motorController', ['$scope', 'motorService',function ($scope, motorService)

您的代码存在的问题是,工厂使用了不同的模块名称“
motorApp
”,而不是模块名称“
module

使用

此外,在控制器中,您应该从注入的服务名称“
motorService
”中删除“$”


我删除了额外的$infront汽车服务,但结果仍然是一样的。我也犯了同样的错误。是的,我犯了。这是“完全错误”错误:[$injector:unpr]未知提供商:motorServiceProvider可能是您在js文件中指定了一个不同的应用程序名称,正如上面提到的sahil,我尝试了上面建议的更改,但不幸的是没有成功。我仍然收到相同的错误。可能值得一提的是,我正在visual studio中尝试,而不是在记事本中。我建议请在此plnkr中创建一个相同的插件。我将服务和控制器放在同一个文件中,但实际上它们将位于不同的文件中。如果您检查此plnkr并跟踪问题,我甚至可以。谢谢,在这个插件中,问题是定义了两个ng应用程序,一个在html标记上,另一个在主体上。如果您在html,一切正常。请澄清。另外,如果您在不同的文件中加载服务和控制器,您如何在未定义模块的文件中引用模块??
var module = angular.module('myApp', [])
    .controller('motorController', ['$scope', 'motorService',function ($scope, motorService) {

    getMotors();
    function getMotors() {
        motorService.GetAllMotors()
            .success(function (motors) {
                $scope.motors = motors;
            })
            .error(function (error) {
                $scope.status = 'Unable to load motor data: ' + error.message;
            });
    }
}]);