Angular与readonly输入

时间:2013-02-22 15:02:19

标签: input angularjs

我试图在只读输入上触发更改。我无法找到另一种方法。

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

1 个答案:

答案 0 :(得分:0)

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

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

$scope.$watch('input', function(){
  $scope.changeRO();
});