Angularjs 在部署后不起作用

本文关键字:不起作用 部署 Angularjs | 更新日期: 2023-09-27 18:36:38

Angularjs 部分在 IIS 8.5 中部署后不起作用,这是我的 js 文件此代码适用于具有 Visual Studio 2012 的本地计算机

angular.module('MyApp').controller("DataViewController", ["$scope", "RequestService", function($scope, RequestService) {
    $scope.Requests = [];
    RequestService.GetRequests().then(function (d) {
        $scope.Requests = d.data
    });
}])
.factory('RequestService', function ($http) { 
    var fac = {};
    fac.GetRequests = function () {
        return $http.get('/Data/EmployeeRequests');
    }
    return fac;
});

Angularjs 在部署后不起作用

问题是您的应用程序找不到资源

只需更改

从:

.factory('RequestService', function ($http) { 
    var fac = {};
    fac.GetRequests = function () {
        return $http.get('/Data/EmployeeRequests');
    }
    return fac;
});

自:

.factory('RequestService', function ($http) { 
    var fac = {};
    fac.GetRequests = function () {
        return $http.get('Data/EmployeeRequests');
    }
    return fac;
});

工厂声明中缺少显式类型注释。

缩小.js文件可能存在问题。在本地计算机上,当您将解决方案部署到生产服务器上的 IIS 时,VS 会阻止捆绑优化 - ASP.NET 最小化并捆绑所有 js 和 css 文件。从而转动

function($http) { ... }

function(a) { ... }

要解决问题,请使用显式注释:

.controller(['dep1', 'dep2', '$http', function(dep1, dep2, $http) {... }]);

Controller.$inject = ['dep1', 'dep2', '$http'];