2017-09-13 34 views
2

我已经通过其他解决方案可用于stackoverflow bt它没有为我工作。所以请有人建议我在我的情况下做什么。 在我的情况下,当我执行删除操作时,它给控制台上的错误,记住它不反映在删除操作,其工作正常。我只是想删除或解决这个错误。TypeError:执行删除操作时无法读取未定义的属性'concat'

这里是我的控制台错误:

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

这里是我的代码的行中没有。 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; 
     }, 

请建议我该怎么办,谢谢

+0

'jdService.getjdFileName()'''undefined' –

+0

好的,那我该如何处理呢? –

+0

'jdService.getjdFileName()'的后代码' –

回答

0

如果你改变中的表达式0至:

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

然后这部分(jdService.getjdFileName() || '')将评估要么由jdService.getjdFileName()或返回,如果该值是falsy,比为空字符串(“”)的值。这样你可以确保concat()总是在一个字符串上被调用。

+0

谢谢@marekful您的回复 –

+0

谢谢@marekful它的工作现在没有错误在控制台和删除操作进入工作fine.thank您的解决方案。 –

相关问题