【发布时间】:2018-01-12 01:38:53
【问题描述】:
我的代码中有一个工厂方法:-
(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'”。
任何帮助将不胜感激。
【问题讨论】:
-
所以我猜你的 .net HomeController 当你没有找到数据的情况下它仍然返回一个 OK(或 200)你可以改变你的 .net 控制器来抛出 BadRequest("no data找到”)当没有数据时?
-
是的,我没有发送任何 BadRequest。我后来想通了,谢谢你的cmets。
标签: javascript .net angularjs