TypeError: Cannot read property 'concat' of undefined when performing delete operation

TypeError: Cannot read property 'concat' of undefined when performing delete operation

我已经了解了 Whosebug 中可用的其他解决方案,但它对 me.So 不起作用,请有人建议我在我的情况下该怎么做。 在我的情况下,当我执行删除操作时它在控制台上给出错误,但请记住它没有反映删除操作,它的工作 fine.I 只是想删除或解决这个错误。

这是我的控制台错误:

TypeError: Cannot read property 'concat' of undefined
at ChildScope.$scope.deleteJob (uploadController.js:454)
at $parseFunctionCall (angular.js:12474)

这是我在第 1 行的代码。 454:

//delete JD
    $scope.deleteJob = function (fileName) {
      $scope.loadingJobs = true;
      _deleteFile(fileName, AppConstants.docType.JOBDESCRIPTION);
       //line no.454
      if ((jdService.getjdFileName() === fileName) || ((jdService.getjdFileName().concat(".xml") === fileName))) { //line no.454
        $scope.isjdDeleted = false;
        jdService.setisSelected(false);
      }

    };

这是我从 UI 获取 jdName 的方法:

jdService.setjdFileName(fileName);

这是我的服务,我在其中定义了我的 jdFileName 方法:

var jdService = [
    function() {
        var jdFileName;
        return {
        getjdFileName: function () {
            return jdFileName;
        },
        setjdFileName: function(value) {
            jdFileName = value;
        },

请建议我该怎么做,谢谢

如果将 if 中的表达式更改为:

if ((jdService.getjdFileName() === fileName) || (((jdService.getjdFileName() || '' ).concat(".xml") === fileName)))

那么这部分 (jdService.getjdFileName() || '' ) 将计算为 jdService.getjdFileName() 返回的值,或者,如果该值是假的,则计算为空字符串 ('')。这样你就可以确保 concat() 将始终在字符串上被调用。