AngularJS, MVC.Unknown provider: $ScopeProvider <- $Scope

AngularJS, MVC.Unknown provider: $ScopeProvider <- $Scope <- userCtrl

本文关键字:lt Scope ScopeProvider AngularJS MVC Unknown provider      更新时间:2023-09-26

我的angularscript出现错误,我试图从Web api加载一些数据并尝试使用ng-repeat来理解Angular的基础知识。https://docs.angularjs.org/error/$injector/unpr?p0=$ScopeProvider%20%3C-%20$Scope%20%3C-%20userCtrl

我的代码看起来像这样

我有一个从 _Layout.cshtml 加载的应用程序.js它只包含:

angular.module('myApp', []);

然后我的用户控制器.js也从 _Layout.cshtml 加载,如下所示:

angular.module('myApp')
.controller('userCtrl', ['$Scope', '$http', function ($scope, $http) {
    $scope.loading = true;
        $http.get('/api/user')
            .success(function (data) {
        $scope.users = data;
        $scope.loading = false;
    }).error(function () {
        $scope.error = "An error has occured while loading posts!";
        $scope.loading = false;
    });
    }]);

然后这就是我的 HTML 的样子:

@{
    ViewBag.Title = "Users";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<html ng-app="myApp" >
<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
</head>
<body ng-controller ="userCtrl">
    <h1>Users</h1>
    <div class="container">
        <div ng-repeat="user in userCtrl.users">
            First name: {{user.FirstName}}<br />
            Last name: {{user.LastName}}<br />
            Age: {{user.Age}}<br />
            City: {{user.City}}
        </div>
    </div>
</body>
</html>

bundles.Add(new ScriptBundle("~/bundles/usercontroller").Include(
                "~/Scripts/App/user-controller.js"));
bundles.Add(new ScriptBundle("~/bundles/angularjs").Include(
                      "~/Scripts/angular.min.js",
                      "~/Scripts/App/app.js"));

然后我在_Layout里有这个

@Scripts.Render("~/bundles/angularjs")
    @Scripts.Render("~/bundles/usercontroller")

我的问题是,在ng-repeat中,我有"userCtrl.users中的用户",我将其更改为"用户中的用户",因为控制器已经在中定义,现在它似乎正在:)

您正在尝试使用大写的"Scope"注入依赖项,也不需要将$http作为依赖项注入。

如果您的控制器如下所示:

.controller('userCtrl', ['$scope', function ($scope, $http) {

它应该被修复。