2016-06-08 20 views
0

我遇到了「無法讀取屬性'indexOf'未定義」的問題。以下是源代碼。感謝你的幫助。無法讀取在Angular Controller中定義的屬性'indexOf'

$http.get("js/project/data.json").then(function(response) { 
     //$scope.case = response.data.caseno;  
     $scope.case = response.data.caseno.map(function(elem) { 
      return elem.toLowerCase(); 
     }); 
    }); 

    console.log($scope.project.ProjectCaseNo.toLowerCase()); 

    if($scope.case.indexOf($scope.project.ProjectCaseNo.toLowerCase()) != -1){ 
     $scope.glyphicon = 'glyphicon-ok green'; 
     $scope.CaseMessage = 'Valid Case No.'; 
    }else{ 
     $scope.glyphicon = 'glyphicon-remove red'; 
     $scope.CaseMessage = 'Invalid Case No.'; 
    }; 
}; 
+1

調試您的代碼,找到問題所在,將信息添加到您的問題。然後我們可以嘗試幫助你。但是這個錯誤很明顯。 – melancia

+1

[如何創建最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve) – melancia

+0

提示:JS是異步的。 http://stackoverflow.com/questions/6847697/how-to-return-value-from-an-asynchronous-callback-function –

回答

2

改變它是這樣的:

$scope.VerifyCaseNo = function(){ 
     $http.get("js/project/data.json").then(function(response) { 
      //$scope.case = response.data.caseno;  
      $scope.case = response.data.caseno.map(function(elem) { 
       return elem.toLowerCase(); 
      }); 
      console.log($scope.project.ProjectCaseNo.toLowerCase()); 

      if($scope.case.indexOf($scope.project.ProjectCaseNo.toLowerCase()) != -1){ 
       $scope.glyphicon = 'glyphicon-ok green'; 
       $scope.CaseMessage = 'Valid Case No.'; 
      }else{ 
       $scope.glyphicon = 'glyphicon-remove red'; 
       $scope.CaseMessage = 'Invalid Case No.'; 
      }; 
     }); 
    }; 

$scope.case$http.get()操作之前未定義完成。所以你得到了無法讀取屬性'indexOf'的未定義的錯誤!

+0

謝謝你們的解決方案。它按預期工作。需要更多地瞭解$ http概念。 – Mzach

0

您可以使用String(yourValue).indexOf('')

+0

這不會提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/14592312) – beryllium

+1

@beryllium似乎是一個企圖回答我 –

相關問題