2017-01-18 22 views
0

角度文字列の比較で奇妙な問題があります。私は2つのファイル名を比較して、アップロードされたファイルが新しいかどうかを確認しようとしています。AngularJS文字列比較

コードは次のようになります。

for (var i = 0; i < $scope.azureFilesData.length; i++) { 
     console.log("Check Existing File Name: " + $scope.azureFilesData[i].file_name + ", Against upload File Name: " + fileName); 

     if (angular.equals($scope.azureFilesData[i].file_name.toUpperCase,fileName.toUpperCase)) { 
      console.log("Confirm Existing File Name: " + $scope.azureFilesData[i].file_name + "Equals upload File Name: " + fileName); 
      return $scope.azureFilesData[i].azurefilesid; 
     } 
    } 

はazureFilesDataが空の最初のファイルをアップロードし、それがこのブロックをスキップします。第二のファイルをアップロードして、コンソールが報告されます。

チェック既存のファイル名:アップロードテスト2.docx、アップロードファイル名に対する:アップロードTest.docx 確認既存のファイル名:アップロードのテスト2.docxEqualsアップロードファイル名を:アップロードTest.docx

しかし、最初のファイルのIDを返します(最初のファイルの後のすべてが更新であると考えているため)。また、angular.equalsの代わりに==と===を代入しようとしました。私は何が欠けていますか?

+0

'fileName'変数は' fileName = 'Upload Test.docx''として定義されていますか? – Mistalis

答えて

1

toUpperCaseは関数なので、fileName.toUpperCase()のように呼び出す必要があります。それ以外の場合は、関数を比較します。

+0

ありがとうございます。私はそれが少しだったことを知っていた。見る時間を割いていただきありがとうございます。 –