为什么要用javascript don';是否更新angularJs变量?

为什么要用javascript don';是否更新angularJs变量?,javascript,forms,angularjs,Javascript,Forms,Angularjs,我想加载一个文本文件,并通过将该文件复制到输入文本,将该文件的文本放入AngularJS变量中 此js将文本放在输入字段上: document.getElementById('JSONFile').addEventListener('change', readFile, false); function readFile(evt) { var files = evt.target.files; var file = files[0]; var reader = new

我想加载一个文本文件,并通过将该文件复制到输入文本,将该文件的文本放入AngularJS变量中

此js将文本放在输入字段上:

document.getElementById('JSONFile').addEventListener('change', readFile, false);

function readFile(evt) {
    var files = evt.target.files;
    var file = files[0];
    var reader = new FileReader();

    var input = document.getElementById('jsontext');

    reader.readAsText(file);
    reader.onload = function () {
        input.value = this.result;
    };
}
输入字段绑定到AngularJS变量:

<input type="text" ng-model="jsontext" id="jsontext" />

但只有在我手动更改文本输入的某些内容时,变量才会更新,用于测试:


我不知道你所说的
input\u fiddle
指的是什么,但我知道你只是想把一个变更处理程序绑定到某个输入上。它不起作用的原因是,在AngularJS中,数据更改由via处理

要在未绑定到范围的上下文中更改数据,可以调用
$apply
激活摘要循环(或使用apply函数包装该代码),或者只使用经典的角度方式,通过指令绑定更改处理程序,例如:

$scope.$apply(函数(){
input.value=this.result;
});
进一步阅读
  • 关于角尖

我只想说我用javascript更改了输入的值
input.value=this.result。我改了标题。你错过了“摘要循环”和“手表”的url链接了吗?我不知道代码在哪里,但你应该多读一点angular的工作原理并熟悉它。