2016-08-24 2 views
0

を動作しません後、私はファイルの後に有効にするために私のボタンの有効状態を設定しようとしていますボタンを有効にしますがは、アップロードファイルの最初の時間に

をアップロードするために選択されている問題は、私が前に二回、ファイルを選択する必要があります

onchange="angular.element(this).scope().file_changed(this)" 

これを行うことにより、あなたが入力範囲に取り組んではなく、あなたのコントローラの範囲(したがって、あなたが言及されていないされています。ボタンは、問題は、このラインである

<form name="importForm"> 
    <div ng-if="vm.results == null"> 

     <div> 
      <label>File*</label> 

      <input id = "uploadFile" ng-model="vm.fileImporter.file" 
        onchange="angular.element(this).scope().file_changed(this)" 
        required 
        type="file" accept="*" /> 
     </div> 

     <div class="footer"> 
      <button ng-disabled="importForm.$invalid" ng-click="vm.importFile()">Import</button> 
     </div> 
    </div> 
</form> 


    $scope.file_changed = function (element) { 
     $scope.$apply(function (scope) { 
      var file = element.files[0]; 
      var reader = new FileReader(); 
      reader.readAsDataURL(file); 
      reader.onload = function (evt) { 
       vm.fileImporter.file = evt.target.result; 
      } 
     }); 
    }; 

答えて

0

を有効になっていますよur機能$scope.file_changed)。

は、(代わりのonchangeのNG-変更の使用を注意してください)このような何かにあなたのラインを変更してみてください:

ng-change="file_changed(this)" 

それはあなたの問題を解決する必要があります。

+0

こんにちはLuxor001、私はこれを行うときにエラーが発生しますfile_changedは定義されていません私はVMのメソッドの署名を変更する必要がありますか? – MicroMan

+0

私の悪い、あなたはonchangeの代わりにng-changeを使うべきです、私は気づいていませんでした。 ng-changeは角度指示であり、onchangeは純粋なjavascriptです(悪い:角度を使用している点は何ですか?)。詳細については私の編集した回答を参照してください。 – Luxor001

+0

まだ動作しませんでした.. – MicroMan

関連する問題