我使用 AngularJS 和 ASP.NET MVC 来创建一个使用 Angular Controller 作为前端的应用程序。 当我在我的开发系统上运行该应用程序时,它运行良好。当我将它部署到本地 IIS 上时,它工作正常。但是,当我将其部署到生产服务器 IIS 时, Angular Controller 不会加载,并且需要刷新页面才能使其正常工作。
我看过类似的问题,例如: Angular app only loads on page refresh
我也没有安装任何其他扩展或插件来影响其他类似问题中建议的行为。
我已将所有 JS 打包移动,但这也无济于事。 JS 的顺序似乎也是正确的,因为它在开发系统和本地 IIS 上运行得很好。
我不知道如何处理这个问题。
这是控制台中错误的屏幕截图:
这是代码:
对于 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);
};
}
在 View 中使用 ng-init="initialize()"调用 $scope.initialize 方法
最佳答案
I have moved all the JS in bundles
如果您正在最小化 Angular Controller ,那么您应该像这样编写我们的 Controller ,以便最小化器不会重命名重要的 Angular 关键字,例如 $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);
};
}])
关于javascript - AngularJS: Controller 仅在页面刷新后加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45296627/