当我从普通JavaScript更改输入元素的值时,角度模型不会更新.是否有任何方法通过在更改后手动触发某些事件来以某种方式触发此更新?
<body ng-controller="MainCtrl">
<script>
function changeValue() {
var e = document.getElementById("field");
e.value = "updated value";
}
</script>
field: <input type="text" id="field" ng-model="field">{{field}}
<br>
<button onclick="changeValue()">Change the value</button>
</body>
Run Code Online (Sandbox Code Playgroud)
Fre*_*all 41
你不应该这样做(除非它的测试,但即使这样,请考虑量角器).以这种方式与角度交互是一个坏主意.但是,如果你必须,这就是你如何做到的.
function changeValue() {
var e = document.getElementById("field");
e.value = "updated value";
var $e = angular.element(e);
$e.triggerHandler('input');
}
Run Code Online (Sandbox Code Playgroud)
一种不同的中间方式
function changeValue() {
var e = document.getElementById("field");
var scope = angular.element(e).scope();
scope.field = "updated value";
scope.$digest();
}
Run Code Online (Sandbox Code Playgroud)
正确的方法是使用角度控制器
$scope.changeValue = function(){
$scope.field = "updated value";
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26168 次 |
最近记录: |