我的代码中有一个工厂方法:-
(function () {
var app = angular.module('MyApp', []);
app.controller('MYController', function ($scope, CourseDescFactory) { // here $scope is used for share data between view and controller
$scope.MyDescCourses = [];
CourseDescFactory.OurCourses().then(function (d) {
$scope.MyDescCourses = d.data;
$scope.MainHeading = $scope.MyDescCourses[0].CD.MainHeading;
$scope.MainDesc = $scope.MyDescCourses[0].CD.MainDesc;
$scope.MainImg = $scope.MyDescCourses[0].CD.Img;
$scope.MySubDescCourses = [];
$scope.MySubDescCourses = $scope.MyDescCourses[0].CSD;
//$scope.Img = $scope.MyDescCourses[0].Img;
}, function (error) {
alert('Cannot Load Course Detail');
});
})
.factory('CourseDescFactory', function ($http) {
var CourseDescList = {};
CourseDescList.OurCourses = function (id) {
return $http({
method: 'GET',
url: '/Home/CourseDesc',
params: {}
});
}
return CourseDescList;
});
})();
当我有来自后端的数据时,这工作正常。但是当没有数据时,而不是显示alert('Cannot Load Course Detail');它会抛出错误“无法读取未定义的属性‘CD’”。
任何帮助将不胜感激。
最佳答案
最好使用以下命令检查您的响应变量(即“数据”)及其内部内容。
if (
(d.data != undefined) && (d.data != null) && (d.data != "")
)
关于javascript - 工厂 Angular.js 不显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48218378/