我试图在只读输入上触发更改。我无法找到另一种方法。
<!DOCTYPE html>
<html ng-app="angularjs-starter">
<head lang="en">
<meta charset="utf-8">
<title>Custom Plunker</title>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script>
<link rel="stylesheet" href="style.css">
<script>
document.write('<base href="' + document.location + '" />');
</script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<form>
<input type="text" ng-change="changeRO()" ng-model="input" readonly placeholder="I have readonly attribute." />
<input type="text" ng-change="change()" ng-model="input" placeholder="Write" />
<p ng-repeat="text in texts">{{text}}</p>
</form>
</body>
答案 0 :(得分:0)
如果您的输入是只读的,则意味着用户无法直接更改其值。如果用户不能这样做,那么onchange事件将永远不会被触发。同样代表您动态更改值的情况, - 不会触发onchange事件。
在您的情况下,由于您的读/写输入连接到'输入'模型(通过ng-model),您可以从控制器中的$ watch函数触发'changeRO'回调:
$scope.$watch('input', function(){
$scope.changeRO();
});