我想将基本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>
答案 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