将变量从基本js发送到angular

时间:2015-06-14 15:22:09

标签: javascript angularjs function variables send

我想将基本JS中的变量发送到角度函数中。我想发送变量value1。当你看到我声明value1的代码时,在脚本关闭后,我想将value1的值发送到在其他文件中声明的函数doImportAll

<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>

2 个答案:

答案 0 :(得分:0)

正如已经指出的那样,没有理由在角度服务中执行此操作。但是,如果你想让这个函数不在angular中运行,你可以像这样为全局窗口对象赋值:

window.value1 = lines[0];

然后可以通过窗口对象访问角度。这不是最优雅的解决方案,你应该考虑重构你的FileReader逻辑以在角度内工作。

答案 1 :(得分: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