You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS模块加载卡住,TableContent控制器引入$http后其余get请求失效

问题根因

  • 依赖注入不匹配:你声明的控制器依赖列表顺序为['$http', '$scope', '$window'],但控制器函数的入参顺序为($scope, $window),既漏了$http的参数位,顺序也完全不对应。AngularJS 依赖注入严格按数组顺序匹配参数,导致代码中调用的$http实际是未定义值,执行$http.get时直接抛出未捕获异常,中断后续代码执行,同时也会阻塞同 Angular 上下文内的其他请求逻辑。
  • 变量未声明:代码中EditIndex、EditProjectID、EditProject、ProjectLength、PostData均未使用var/let/const声明,会自动挂载为全局变量,极易引发命名冲突,干扰其他业务逻辑。
  • 取值逻辑错误:$window.Project是项目数组,你将数组直接赋值给$scope.Project后取$scope.Project.ID,数组本身没有ID属性,会导致请求参数为undefined,请求路径异常。

修复方案

调整控制器参数顺序和数量与依赖列表一致,补全变量声明,修正删除请求的参数取值逻辑,修复后代码如下:

app.controller('TableContent', ['$http', '$scope', '$window',
    // 调整参数顺序和数量和依赖列表完全匹配
    function ($http, $scope, $window) {
        console.log("I'm in TableContent");
        $scope.EditSaverCommit = function () {
            console.log("I'm in EditSaverCommit");
            // 补全变量声明
            const EditIndex = $scope.$index;
            const EditProjectID = $scope.project.ID;
            console.log("Scope has"+$scope.project.Name);
            const EditProject = $scope.project.Name;
            console.log("EditProject has "+EditProject);
        };

        $scope.DeleteProjectCommit = function () {
            console.log("I'm in DeleteProjectCommit");
            $window.Project.splice($scope.$index, 1);
            let ProjectLength = $window.Project.length;
            let PostData = "";
            $scope.Project = $window.Project;

            // 取当前行对应项目的ID,而非数组的ID
            PostData = $scope.project.ID;
            $http.get("https://localhost:44377/project/DeleteProject/"+PostData).then(function (response) {
                console.log("I'm in DeleteProject");
                $window.Project = response.data;
            });
            PostData = "";
            console.log("I'm not in TableContent");
        };
    }]);

内容的提问来源于stack exchange,提问作者user199135

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:15:00