【问题标题】:Error Message doesn't show for factory Angular.js工厂 Angular.js 不显示错误消息
【发布时间】: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


【解决方案1】:

最好使用以下命令检查您的响应变量“数据”及其内部内容。

     if (
         (d.data != undefined) && (d.data != null) && (d.data != "") 
        )

【讨论】:

  • 是的,我发现了错误。谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 2010-12-12
  • 2019-07-17
  • 1970-01-01
相关资源
最近更新 更多