2015-06-14 80 views
0

我想將基本JS中的變量發送到函數中的角度。我想發送變量value1。因爲您看到我聲明value1的代碼,並且在腳本關閉後,我想將value1的值發送到在其他文件中聲明的函數doImportAll將變量從基本js發送到角度

<script> 
     var value1='hi'; 
     var openFile = function(event) { 
      var input = event.target; 

      var reader = new FileReader(); 
      reader.onload = function(){ 
       var text = reader.result; 
       var node = document.getElementById('output'); 


       var lines = reader.result.split('\n'); 
       for(var line = 0; line < lines.length; line++){ 
        console.log(lines[line]); 
       } 
       value1=lines[0]; 
       node.innerText = lines[2] 
       document.getElementById('clicking').click(); 
      }; 
      reader.readAsText(input.files[0]); 
     }; 
    </script> 
    <button id="clicking" class="btn btn-md" ng-click="doImportAll(value1)" my-i18n="modal_importAll"></button> 
    <div> 
     <input type='file' accept='text/plain' onchange="openFile(event)"> 
    </div> 
    <div id='output'> 
     ... 
    </div> 
+1

嗨,我不知道你爲什麼要這麼做?爲什麼不使用角度並在控制器內部執行,並在文件讀取器的某些工廠中處理邏輯? –

回答

0

正如所指出的,我們沒有理由不的角度服務中做到這一點。但如果無論你的理由,你希望有此功能無法運行裏面的角度,你可以像這樣值分配給全局的window對象:

window.value1 = lines[0]; 

然後它會是角訪問通過窗口對象。這不是最優雅的解決方案,你應該真的考慮重構你的FileReader邏輯以在角度內工作。

0

,你可以注入價值到您的角度應用程序,然後使用該

angular.module('App').value('yourVar', value); 

angular.module('App').controller('Controller', function ($scope, yourVar) { 
    console.log(yourVar); 
}); 

這裏是工作示例 http://plnkr.co/edit/rUCXJ0GmEb5iWf8OiBs6?p=preview