繁体   English   中英

为什么用javascript编辑输入文本不会更新angularJs变量?

[英]Why edit input text with javascript don't update angularJs variable?

我想加载一个文本文件,然后通过将文件复制到输入文本中,将该文件的文本放入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" />

但是仅当我手动更改文本输入中的内容以进行测试时,变量才会更新:

http://jsfiddle.net/uuuW6/

我不知道您通过input_fiddle指的是什么,但我看到您只是想将更改处理程序绑定到某些输入。 它不工作的原因是,在AngularJS,数据的变化是由处理摘要循环通过手表

要在不受范围限制的上下文中更改数据,可以调用$apply激活摘要循环(或使用apply函数包装该代码),或仅使用经典的Angulary方法并绑定更改处理程序通过指令,例如:

$scope.$apply(function () {
    input.value = this.result;
});

进一步阅读

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM