-1

我正在尝试在只读输入上触发 on-change。我找不到替代方法。

<!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>
4

1 回答 1

0

如果您的输入是只读的,则意味着用户无法直接更改其值。如果用户不能这样做,则永远不会触发 onchange 事件。同样代表您动态更改值的情况 - 不会触发 onchange 事件。

在您的情况下,由于您的读/写输入连接到“输入”模型(通过 ng-model),您可以从控制器中的 $watch 函数触发您的“changeRO”回调:

$scope.$watch('input', function(){
  $scope.changeRO();
});
于 2013-02-22T16:06:44.033 回答