AngularJS:控制器仅在页面刷新后加载

时间:2017-07-25 07:27:51

标签: javascript angularjs asp.net-mvc iis

我正在使用AngularJS和ASP.NET MVC来创建一个使用Angular控制器作为前端的应用程序。 当我在我的开发系统上运行应用程序时,它工作正常。当我在本地IIS上部署它时,它工作正常。但是,当我将它部署到生产服务器IIS时,角度控制器不会加载,它需要刷新页面才能使其工作。

我看过类似的问题,例如: Angular app only loads on page refresh

我也没有安装任何其他扩展程序或插件来影响其他类似问题中建议的行为。

我已经将所有JS都移到了捆绑包中,但这也无济于事。 JS的顺序似乎也是正确的,因为它在开发系统和本地IIS上运行良好。

我对如何处理这个问题一无所知。

以下是控制台中错误的屏幕截图:

Controller not found.

这是代码:

对于HomeController,

app.controller('homeController', function ($scope, $uibModal, HomeService, RequestService) {
    $scope.refreshOriginatorForms = function (searchCriteria) {
        HomeService.getOriginatorRequestForms(searchCriteria).then(function (response) {
           ....
        });
    }
    var originatorSearchCriteria = {
        Pager: {
            ItemsPerPage: 10,
            CurrentPage: 1
        }
    };
    $scope.OriginatorFormsSearchCriteria = originatorSearchCriteria;
    $scope.initialize = function () {
        $scope.refreshOriginatorForms($scope.OriginatorFormsSearchCriteria);
    };
}

使用ng-init =“initialize()”在视图中调用$ scope.initialize方法

2 个答案:

答案 0 :(得分:1)

  

我已经把所有JS都移到了包中

如果您正在最小化角度控制器,那么您应该像这样编写我们的控制器,以便最小化器不重命名重要的角度关键字,如$scope

app.controller('homeController',['$scope','$uibModal','HomeService','RequestService', function ($scope, $uibModal, HomeService, RequestService) {
$scope.refreshOriginatorForms = function (searchCriteria) {
    HomeService.getOriginatorRequestForms(searchCriteria).then(function (response) {
       ....
    });
}
var originatorSearchCriteria = {
    Pager: {
        ItemsPerPage: 10,
        CurrentPage: 1
    }
};
$scope.OriginatorFormsSearchCriteria = originatorSearchCriteria;
$scope.initialize = function () {
    $scope.refreshOriginatorForms($scope.OriginatorFormsSearchCriteria);
};
}])

答案 1 :(得分:0)

我们终于解决了。我们的网络工程师建议在DNS上启用CDN,并且它有效。 一直以来,看着代码,问题就是其他问题。