Angular.js:手动修改后更新绑定
Angular.js: update binding after manual modification
我刚刚开始深入研究angular.js,发现这个问题似乎无法解决。考虑下面的简单代码:
<input type="text" ng-model="test">
<input type="text" value="{{test}}">
当我在第一个字段中写入时,第二个字段更新得很好。当我写入第二个字段,然后返回到第一个字段时,绑定不再更新。有趣的是,HTML属性value
没有更新,只是没有显示。
在普通javascript中等效的(至少大致的)代码没有这个问题:
<input type="text" id="model">
<input type="text" id="binding">
<script>
var model = document.getElementById("model");
var binding = document.getElementById("binding");
model.addEventListener("keyup",function() {
binding.value = model.value;
});
</script>
这里有一个小提琴供您测试:http://jsfiddle.net/Q6b5k/
知道为什么在使用angular.js时会发生这种情况以及如何解决这个问题吗?
[EDIT]从最初的回复来看,我似乎没有说清楚。我不希望第二个字段更新第一个字段。绑定只能是单向的,例如允许过滤甚至手动更正(例如在博客文章创建表单中自动创建URL别名)。http://jsfiddle.net/Q6b5k/1/
value属性仅在呈现初始HTML时使用。在页面加载之后,其他的事情都在Angular的事件循环中发生,因此你需要做一些事件循环可以拾取的事情。你可以使用ng-change来做你想做的事情:
<input type="text" ng-model="test" ng-change="test2=test.toLowerCase();" />
<input type="text" ng-model="test2"">
这是因为{{value}}
不创建绑定,它用于插值。
<div ng-app>
Angular.js:<br>
<input type="text" ng-model="test">
<input type="text" ng-model="test">
</div>
演示:小提琴
相关文章:
- Angular:更新一次性绑定的数据
- AngularJS 1.5.x服务未正确绑定,并且未在控制器中更新
- AnguarJS 1.3使用一次性绑定手动更新绑定
- Angular$watch未更新绑定
- 是否可以在extjs5中动态更新绑定
- 如何在引导日期范围选取器日期更改时更新绑定
- 将更新绑定到链接中的指令元素,而不是内联
. - 表单提交不会更新绑定到单选按钮的模型
- 如何在 d3.js 中更新绑定数据
- 角度更新绑定配置
- 为什么我的 ko 计算的可观察量在其值更改时不更新绑定的 UI 元素
- KnockoutJS-一个计算可写的可观察对象;无法正确更新绑定
- 在AngularJS中,如何为多个控制器的共享服务属性的异步模型更改更新绑定[.]
- js:更新绑定
- 更新绑定与jQuery排序
- Angular.js:手动修改后更新绑定
- JqxGrid过滤器值在更新绑定数据时清除
- 如果以编程方式更改了模型,Ko不会更新绑定控件
- 为什么不't将通知更新绑定到变量
- 更新绑定到表单表的observableArray会导致焦点丢失